Libpng12 необходим для 17.10

Libpng12 необходим для 17.10

Видеоредактор 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.

  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.

решение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.

Связанный контент