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.

  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,

Этот источник работал для меня на 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.

Другие вопросы по тегам