Libpng12 необходим для 17.10
Для видеоредактора Resolve от Blackmagic Design, V14.0.1, требуется libpng12. К сожалению, только libpng16 поставляется с новой версией 17.10.
Есть ли способ вернуться к libpng12 под 17.10? Если да, то как мне получить libpng12 - synaptic не выдает его при поиске.
4 ответа
Есть пакеты Ubuntu для libpng12-0
для верных (14.04LTS) и xenial (16.04LTS), но не для 17.10. Вы должны попросить производителя программного обеспечения (например, Blackmagic Design) обновить программу и / или установщик, чтобы использовать самые последние версии libpng16-16
,
В качестве обходного пути вы можете загрузить и установить .deb
пакет для Xenial с веб-страницы Ubuntu перед установкой видеоредактора Resolve от Blackmagic Design.
Установка
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
,
Не пытайтесь установить пакет более старого дистрибутива, если вы не уверены в том, что делаете.
Вместо использования бинарного пакета вы можете скомпилировать libpng
,
- Если у вас есть исходный код программы, которую вы хотите установить, вы можете использовать оригинальный исходный код. После установки библиотеки вы можете использовать ее для настройки и компиляции других приложений.
- Если у вас нет исходного кода программы, а только
.deb
Установщик, например, если программа является коммерческим продуктом, вы должны установить пакет, чтобы избежать ошибок во время установки. Вы можете создать пакет из исходного кода, используя инструкции ниже.
Компиляция libpng из официального исходного кода
Обратите внимание, что старый libpng v1.2.x может иметь много уязвимостей. Рекомендуется использовать самую последнюю версию 1.2.x от sourceforge или github. Это для версии v.1.2.59.
Установите пакеты для компиляции программного обеспечения (если они не установлены)
$ sudo apt-get install build-essential
Получить и извлечь исходный код
$ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz $ tar xvfz v1.2.59.tar.gz
Скомпилируйте и установите библиотеку
$ 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
,
Установите пакеты для компиляции программного обеспечения и создания пакетов Ubuntu (если они не установлены)
$ sudo apt-get install build-essential fakeroot dpkg-dev devscripts
Загрузите файлы исходного кода, используя
.dsc
файл со страницы$ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc
Извлеките исходный код, применяя патч, предоставленный Ubuntu
$ dpkg-source -x libpng_1.2.54-1ubuntu1.dsc
Проверьте зависимости для пакета
$ cd libpng-1.2.54/ $ dpkg-buildpackage -rfakeroot -b
Это показывает неудовлетворенные зависимости сборки. В моем случае...
: dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev
Установите зависимости
$ sudo apt-get install debhelper libtool automake autoconf zlib1g-dev
компилировать
$ 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
Используйте полученный пакет
$ cd .. $ sudo dpkg -i libpng12-0_1.2.54-1ubuntu1_amd64.deb
ПРИМЕЧАНИЕ. Компиляция и установка пакетов для старых дистрибутивов так же опасны, как и использование бинарных пакетов для старых дистрибутивов. Описанный процесс компиляции для
libpng12
Пакет использует только пакеты в репозиториях Ubuntu 17.x и не приводит к ошибкам. Я думаю, что использование полученного пакета не сломаетapt
,
Этот источник работал для меня на 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
Нашел его здесь, когда пытался установить драйверы принтера, и похоже, что он работает
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/
скачать, распаковать, скомпилировать, установить (начиная с загрузки и распаковки tar-шара).
cd libpng-1.2.54
./configure --prefix=/usr/local
make
sudo make install
Удалить снова (при необходимости)
#run within libpng-1.2.54 directory
sudo make uninstall
Я понимаю, что кажется, что это несколько дополнительных шагов, но скачать и скомпилировать таким образом тривиально, и нет никакого риска сломать apt.