Назад | Перейти на главную страницу

Как обновить версию libpng на ubuntu

Я установил libpng, используя apt-get install libpng12-dev какая установленная версия libpng 1.2.50.

Вместо этого я хотел бы установить версию libpng 1.6.18.

Как я могу установить libpng 1.6.18 на убунту?

Моя версия Ubuntu:

Description:    Ubuntu 14.04.3 LTS
Release:    14.04
Codename:   trusty

sudo apt-get install libpng16-dev

1.6.18 не существует. На сайте sourceforge libpng существуют только версии 1.6.20, 1.6.21 и (бета) 1.6.22. 1.6.18 может быть удаленной бета-версией.

Поскольку в вашем репозитории явно нет новейших версий libpng, я рекомендую самостоятельно скомпилировать libpng. Вот как это можно сделать:

Как скомпилировать libpng 1.6.21:

$ wget https://downloads.sourceforge.net/project/libpng/libpng16/older-releases/1.6.21/libpng-1.6.21.tar.gz -O libpng.tar.gz
$ tar -xvf libpng.tar.gz
$ cd libpng-1.6.21
$ sudo bash configure --prefix=/usr/local/libpng
$ sudo make install

Взгляните на проводник пакетов вашего дистрибутива (https://packages.ubuntu.com/) и если вы выполните поиск по libpng, вы получите:

Которые показывают вам, что единственные варианты libpng12-0 или libpng3 которые на самом деле оба libpng версия 1.2.50-1ubuntu2

Таким образом, вы не можете установить любую другую версию libpng таким образом, потому что вы используете старую версию Ubuntu (она была старой уже в 2016 году, когда вы задавали здесь свой вопрос), хотя она все еще поддерживается, вам следует обновить ее, особенно если вы хотите более новую версии некоторого программного обеспечения (более поздние версии Ubuntu имеют версию libpng 1.6.20-2).

В противном случае ваши 2 других варианта:

  • найдите где-нибудь кого-нибудь, кто упаковал версию, которая вам нужна для вашего дистрибутива (или, альтернативно, создайте себе такой пакет, вам нужно понять, как создаются ваши пакеты распространения, и вам нужно будет обрабатывать все зависимости)
  • установите нужную вам версию вручную, как ответил @ user333044; обратите внимание, что компиляция библиотек всегда сложнее, чем компиляция программного обеспечения, потому что после компиляции результаты будут храниться в нестандартных местах (было бы еще хуже перезаписать стандартную версию, установленную пакетами), и вам нужно указать это, когда вы будет компилировать другие инструменты, которым нужна эта библиотека (поскольку сама по себе библиотека бесполезна, если ее не использует ни один инструмент). У вас также могут быть решения с динамическими библиотеками и параметрами компоновщика, но это тоже сложно.