Libpng12 потрібен до 17.10


13

Відеоредактор Blackmagic Design для вирішення V14.0.1 вимагає libpng1 2 . На жаль, з новим випуском 17.10 надається лише libpng1 6 .

Чи є спосіб повернутися до libpng12 до 17.10? Якщо так, то як я можу отримати libpng12 - синаптик не перераховує його під час пошуку.


1
Зверніться до Blackmagic та надішліть звіт про помилку. blackmagicdesign.com/support
Пантера

замість того, щоб встановлювати застарілі пакети в систему, вони також можуть бути розміщені поруч із закритими вихідними бінарними файлами, які залежать від без їх з'єднання. Використовуйте ldd ./path/to/<program>для показу бібліотекам даний бінарний файл спробує завантажити. Скомпілюйте або завантажте застарілі бібліотеки або поруч із бінарними, або маніпулюйте envron LD_LIBRARY_PATH, щоб включити їх. Остерігайтеся, будь-яке програмне забезпечення, яке не розповсюджується вашим пакетом пакетів обслуговування, не отримуватиме оновлення безпеки від своєї команди безпеки; вам доведеться вручну оновлювати бібліотеку самостійно, чотири рази на день ідеально :)
ThorSummoner

Відповіді:


17

Є пакети Ubuntulibpng12-0 для надійних (14.04LTS) та xenial (16.04LTS), але не для 17.10. Ви повинні звернутися до виробника програмного забезпечення (тобто Blackmagic Design), щоб оновити програму та / або інсталятор, щоб використовувати найсвіжіші libpng16-16.


Як вирішення, ви можете завантажити та встановити .debпакет для Xenial з веб-сторінки Ubuntu перед тим, як встановити відеоредактор Blackmagic Design Resolve.

  • Встановлення libpng12

    $ wget http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb
    $ sudo dpkg -i libpng12-0_1.2.54-1ubuntu1_amd64.deb
    

ПРИМІТКА. Встановлення пакетів із старих дистрибутивів може порушити вашу aptустановочну систему.


Чи безпечно встановити libpng12пакет від Xenial (16.04LTS)?

Використання пакетів із старих дистрибутивів може бути небезпечним. Це може зламати систему aptінсталяції, оскільки старі пакети можуть вводити залежності до неіснуючих пакетів або замінювати пакети, необхідні новим версіям. Спробуйте використовувати пакети та сховища для використовуваної вами версії Ubuntu, тобто офіційних сховищ Ubuntu та відомих сховищ PPA (які тестують їх пакети).

Щоб перевірити, чи libpng12може встановлення може порушити роботу apt, я перевірив інформацію про пакет .

  • libpng12Залежить від libc6 (>= 2.14)і zlib1g (>= 1:1.1.4), які включені в останніх версіях Ubuntu.

    $ apt-cache policy libc6     # gives me 2.24-9ubuntu2.2
    $ apt-cache policy zlib1g    # gives me 1.2.11dfsg-0ubuntu1
    
  • Зауважте, що жоден інший пакет Ubuntu не потребує останньої версії, libpng12оскільки він не включений у сховище. Останні програми залежать від того, libpng16-16і обидві бібліотеки можуть співіснувати.

  • Я думаю, що це малоймовірно, що цей пакунок порушує apt.

Не намагайтеся встановити пакет старішої дистрибуції, якщо ви не впевнені в тому, що робите.


Ви начебто на правильному шляху, і це може працювати для простих пакетів. Змішування пакетів з різних сховищ, однак, може призвести до розбитої системи через конфліктуючі залежності та ймовірність розбитої системи зростає із кількістю та складністю розглянутих пакунків. Крім того, установка через dpkg триватиме лише до наступного sudo apt upgrade, вам доведеться переставити імпортований пакет у режим очікування. Краще скласти libping12 та встановити його у say / usr / local.
Пантера

Я погоджуюся, що це рішення не працює з усіма необхідними вам пакетами. По-конкретно, я спробував це в нещодавно встановленому Ubuntu 17.04, який мав libpng16-16пакет перед установкою, libpng12щоб відповісти на це питання. В результаті встановлено обидві бібліотеки. Я зробив apt-get upgradeкінець. - Зараз я думаю, що правила в сховищі не розглядаються libpng16як остання версія libpng12. У свою чергу, libpng12залежить лише від libc6 (> = 2.14) та zlib1g (> = 1: 1.1.4). - Я думаю, що це рішення libpng12може бути безпечним для використання apt-get update.
Хайме

Між 16.04 та 17.10 існує велика кількість змін, а змішування пакетів із сховищ - це один із багатьох способів зламати Ubuntu або, більш конкретно, вдалий.
Пантера

Як ви думаєте , що установка пакета , який залежить тільки від libc6і xzlib1g(що існує в 17.x), яка не залежить від включеної libpngбібліотеки, і які ніхто інший пакета залежать від нього, може розірвати apt? - Я думаю, що такі програми, як WPS та редактор відео Resolve, залежать від (старого), libpng12і вони не матимуть результату. Останні програми Ubuntu не залежать від, libpng12але libpng16-16. Ці додатки також не будуть утримуватися. - Для цього конкретного випадку я вважаю, що це рішення безпечне.
Хайме

1
У цьому випадку це дійсно не порушить Apt. Однак інша проблема полягає в тому, що якщо оновлена ​​версія програми libpng12буде завантажена в сховища 16.04, ви не отримаєте це оновлення автоматично, що викликає занепокоєння, особливо якщо це стосується безпеки. Це можна виправити, додавши 16.04 репозиторії до вашого списку джерел та використовуючи вкладне закріплення, щоб вони використовувалися лише для libpng12(призначення пріоритету <100 для всіх інших пакетів).
fkraiem

4

Замість використання двійкового пакету ви можете компілювати libpng.

  • Якщо у вас є вихідний код програми, яку ви хочете встановити, ви можете використовувати оригінальний вихідний код. Після установки бібліотеки ви можете використовувати її для налаштування та компіляції інших програм.
  • Якщо у вас немає вихідного коду програми, а лише .debінсталятор, наприклад, якщо програма є комерційним продуктом, ви повинні встановити пакет, щоб уникнути помилок під час встановлення. Ви можете створити пакет з вихідного коду, скориставшись інструкціями нижче.

Складання libpng з офіційного вихідного коду

Зауважте, що старий libpng v1.2.x може мати багато вразливостей . Рекомендується використовувати найновішу версію 1.2.x від sourceforge або github . Це для версії v.1.2.59

  1. Встановіть пакети для компіляції програмного забезпечення (якщо вони не встановлені)

    $ sudo apt-get install build-essential
    
  2. Отримати та витягнути вихідний код

    $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz
    $ tar xvfz v1.2.59.tar.gz 
    
  3. Складіть і встановіть бібліотеку

    $ cd libpng-1.2.59/
    $ ./configure
    $ make check
    $ sudo make install
    

ПРИМІТКА. Встановлення бібліотеки не встановить залежність, libpng12як відповідає в apt. Ви повинні використовувати .debпакет, щоб встановити його та підтримати встановлення інших .debфайлів, які від нього залежать. Для створення відповідного .debпакету можна скористатися наступними інструкціями.


Використання вихідного коду пакету Ubuntu

libpng12-0пакет відповідає libpng 1.2.54. У Ubuntu є спеціалізована версія, яку вони назвали 1.2.54-1ubuntu1.

  1. Встановіть пакети для компіляції програмного забезпечення та створення пакетів Ubuntu (якщо вони не встановлені)

    $ sudo apt-get install build-essential fakeroot dpkg-dev devscripts
    
  2. Завантажте файли вихідного коду, використовуючи .dscфайл зі сторінки

    $ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc
    
  3. Витягніть вихідний код, застосувавши патч, наданий Ubuntu

    $ dpkg-source -x libpng_1.2.54-1ubuntu1.dsc 
    
  4. Перевірте залежності для пакета

    $ cd libpng-1.2.54/
    $ dpkg-buildpackage -rfakeroot -b
    

    Він показує незадовільні залежності побудови. У моєму випадку ...

     :
    dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev
    
  5. Встановіть залежності

    $ sudo apt-get install debhelper libtool automake autoconf zlib1g-dev
    
  6. Складіть

    $ fakeroot debian/rules binary
    

    Отримані пакети будуть розташовані у батьківській папці

    ../libpng12-0_1.2.54-1ubuntu1_amd64.deb
    ../libpng12-dev_1.2.54-1ubuntu1_amd64.deb
    ../libpng3_1.2.54-1ubuntu1_amd64.deb
    
  7. Використовуйте отриманий пакет

    $ cd ..
    $ sudo dpkg -i libpng12-0_1.2.54-1ubuntu1_amd64.deb
    

ПРИМІТКА. Компілювати та встановлювати пакети для старих дистрибутивів так само небезпечно, як і використання двійкових пакетів для старих дистрибутивів . Описаний процес компіляції для libpng12пакета використовує лише пакети у сховищах Ubuntu 17.x і не призводить до помилок. Я думаю, що використання отриманого пакету не порушить apt.


1

Це джерело працювало для мене на Ubuntu 18:

sudo echo 'deb http://cz.archive.ubuntu.com/ubuntu trusty main universe' \ > /etc/apt/sources.list.d/extra.list
sudo apt update
sudo apt-get install libpng12-0
sudo rm /etc/apt/sources.list.d/extra.list

Знайшов його тут , намагаючись встановити драйвери принтера, і, здається, він працює.


врятував мій день! спасибі
Aryeh Beitz

0

IMO ви безпечніше збираєте з джерела, ніж використовуєте старі пакунки зі старих сховищ.

Найкраща порада, яку я можу дати вам, - це подати звіт про помилку з blackmagic, їм потрібно оновити залежність.

https://www.blackmagicdesign.com/support/

Для компіляції перейдіть до відповідного пакету ubuntu, щоб визначити пакунок та вихідне джерело

https://packages.ubuntu.com/xenial/libpng12-0

Отже, ви хочете "libpng_1.2.54.orig.tar.xz"

https://sourceforge.net/projects/libpng/files/libpng12/older-releases/1.2.54/

завантажити, витягнути, скласти, встановити (починаючи після завантаження та вилучення кульки дьогтю).

cd libpng-1.2.54
./configure --prefix=/usr/local
make
sudo make install

Знову видалити (за потреби)

#run within libpng-1.2.54 directory
sudo make uninstall

Я розумію, це здається декількома додатковими кроками, але завантажувати та компілювати таким чином тривіально, і немає ризику зламати влучний.


Якщо ви компілюєте оригінальний вихідний код і виконайте це make install, .debінсталятор не знайде залежність libpng-12, яку задовольнили. Помилка установки. - Це рішення спрацює, якщо ви отримаєте доступ до вихідного коду чи іншого типу інсталятора програмного забезпечення. - Якщо ви не можете отримати вихідний код, ви можете зібрати джерела для пакету Ubuntu та встановити отриманий файл перед встановленням потрібного програмного забезпечення.
Хайме

Я відмовився від ідеї. Це справді просто допомога для програми від постачальника, який ... гм ... дещо складно працювати. Шкода, адже у продукту багато чого йде. Ну добре ... рухаємось далі ...
Річард Емерсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.