Libpng12需要17.10
Blackmagic Design的Resolvevideo编辑器V14.0.1需要libpng1 2 。 不幸的是,新的17.10版本只提供了libpng1 6 。
有没有办法恢复到17.10下的libpng12? 如果是这样,我如何获得libpng12 – 当我搜索时,synaptic没有列出它。
libpng12-0
Ubuntu包用于可靠(14.04LTS)和xenial(16.04LTS),但不适用于17.10。 您必须要求软件制造商(即Blackmagic Design)更新程序和/或安装程序以使用最新的libpng16-16
。
作为解决方法,您可以在安装Blackmagic Design的Resolvevideo编辑器之前从Ubuntu网页下载并安装Xenial的.deb
软件包。
-
安装
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
安装系统。
从Xenial(16.04LTS)安装libpng12
软件包是否安全?
使用旧版本的软件包可能很危险。 它可能会破坏apt
安装系统,因为较旧的软件包可能会将依赖项引入不存在的软件包或替换新版本所需的软件包。 尝试使用您正在使用的Ubuntu版本的软件包和存储库,即官方Ubuntu存储库和众所周知的PPA存储库(测试其软件包)。
要检查libpng12
的安装libpng12
可以破坏apt
,我检查了包信息 。
-
libpng12
依赖于最近的Ubuntu版本中包含的libc6 (>= 2.14)
和zlib1g (>= 1:1.1.4)
。$ 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可能存在很多漏洞 。 建议使用sourceforge或github中最新的1.2.x版本。 这适用于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
注意:安装库不会在
apt
libpng12
的依赖性设置为满足。 您必须使用.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
。
IMO您从源代码编译比从旧存储库中使用旧包更安全。
我能给你的最好建议是用blackmagic提交bug报告,他们需要更新他们的依赖关系。
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的风险。
这个源在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
在尝试安装打印机驱动程序时找到它,它似乎正在工作。