Видеоредактор Resolve от Blackmagic Design, V14.0.1, требует libpng12. К сожалению, только libpng16поставляется с новой версией 17.10.
Есть ли способ вернуться к libpng12 в 17.10? Если да, то как мне получить libpng12 - synaptic не выводит его список, когда я его ищу.
решение1
ЕстьПакеты Ubuntu дляlibpng12-0
для trusty (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
.
Не пытайтесь установить пакет старого дистрибутива, если вы не уверены в том, что делаете.
решение2
Вместо использования двоичного пакета вы можете скомпилировать libpng
.
- Если у вас есть исходный код программы, которую вы хотите установить, вы можете использовать оригинальный исходный код. После установки библиотеки вы можете использовать ее для настройки и компиляции других приложений.
- Если у вас нет исходного кода программы, а есть только
.deb
установщик, например, если программа является коммерческим продуктом, необходимо установить пакет, чтобы избежать ошибок при установке. Вы можете создать пакет из исходного кода, следуя инструкциям ниже.
Компиляция libpng из официального исходного кода
Обратите внимание, чтостарая версия libpng v1.2.x может иметь много уязвимостей. Рекомендуется использовать самую последнюю версию 1.2.x отsourceforgeилигитхаб. Это для версии 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
.
решение3
Этот источник сработал у меня на 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
Нашел этоздесьпри попытке установить драйверы принтера, кажется, все работает.
решение4
По моему мнению, безопаснее компилировать из исходников, чем использовать старые пакеты из старых репозиториев.
Лучший совет, который я могу вам дать, — отправьте отчет об ошибке в 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.