Blackmagic Design的Resolve视频编辑器,V14.0.1版本,需要libpng12。不幸的是,新的17.10版本只提供了libpng16。
有没有办法在17.10版本下回退到libpng12?如果有,我该如何获取libpng12 - 当我搜索时,synaptic没有列出它。
有没有办法在17.10版本下回退到libpng12?如果有,我该如何获取libpng12 - 当我搜索时,synaptic没有列出它。
libpng12-0
,但是在17.10版本中没有。您必须向软件制造商(例如Blackmagic Design)询问更新程序和/或安装程序以使用最新的libpng16-16
。
从Xenial(16.04LTS)安装libpng12
软件包是否安全?
使用较旧发行版本的软件包可能存在风险。这可能会破坏apt
安装系统,因为较旧的软件包可能引入对不存在的软件包的依赖关系或替换新版本所需的软件包。请尝试使用与您正在使用的Ubuntu版本相对应的软件包和存储库,即官方Ubuntu存储库和知名的PPA存储库(测试其软件包)。
为了检查安装libpng12
是否会破坏apt
,我查看了软件包信息。
libpng12
依赖于包含在最新的Ubuntu版本中的libc6 (>= 2.14)
和zlib1g (>= 1:1.1.4)
。
$ apt-cache policy libc6 # 给出了2.24-9ubuntu2.2
$ apt-cache policy zlib1g # 给出了1.2.11dfsg-0ubuntu1
请注意,没有其他Ubuntu软件包需要一个较新版本的libpng12
,因为它不包含在存储库中。最新的程序依赖于libpng16-16
,并且这两个库可以共存。
apt
。sudo apt upgrade
,你需要将导入的软件包保持在原位。最好的方法是编译libping12并将其安装在例如/usr/local目录中。 - Pantherlibpng12
之前已经有了libpng16-16
软件包,以回答这个问题。两个库都被安装了。最后我执行了apt-get upgrade
命令。目前,我认为软件源中的规则没有将libpng16
视为libpng12
的最新版本。而libpng12
只依赖于libc6(>=2.14)和zlib1g(>=1:1.1.4)。我认为这个libpng12
的解决方案可能对使用apt-get update
是安全的。 - Jaimelibc6
和xzlib1g
(在17.x中存在)的软件包,与所包含的libpng
库无关,并且没有其他软件包依赖它,会破坏apt
吗?-- 我认为像WPS和Resolve视频编辑器这样的程序依赖于(旧版)libpng12
,它们不会出现问题。最新的Ubuntu程序不依赖于libpng12
,而是依赖于libpng16-16
。这些应用程序也不会出现问题。-- 对于这个具体的情况,我认为这个解决方案是安全的。 - Jaimelibpng12
的更新版本,你将无法自动获取此更新,尤其是涉及安全问题时更为关键。可以通过将16.04仓库添加到你的源列表中,并使用apt-pinning来解决此问题,以便仅针对libpng12
使用它们(将所有其他软件包的优先级设置为<100)。 - fkraiem不要使用二进制包,你可以编译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
libpng12-0
软件包对应于libpng 1.2.54
。Ubuntu有一个定制版本,他们将其命名为1.2.54-1ubuntu1
。libpng12
软件包的编译过程仅使用Ubuntu 17.x存储库中的软件包,并且不会导致错误。我认为使用生成的软件包不会破坏apt
。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
依我之见,从源代码编译会比使用旧版本的软件包更安全。
我能给你的最佳建议是向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
make install
,.deb
安装程序将无法找到满足libpng-12
依赖项的内容。安装程序将失败。-- 如果您可以获得源代码或其他类型的软件安装程序,这个解决方案将起作用。-- 如果您无法获取源代码,您可以为Ubuntu软件包编译源文件,并在安装所需软件之前安装生成的文件。 - Jaime
ldd ./path/to/<program>
命令显示给定二进制文件将尝试加载的库。将过时的库编译或下载到与二进制文件相邻的位置,或者通过修改环境变量LD_LIBRARY_PATH来包含它们。请注意,任何不是由您维护者的软件包存储库分发的软件都不会从其安全团队获得安全更新;您需要手动更新库,最好每天四次 :) - ThorSummoner