17.10 需要 Libpng12

17.10 需要 Libpng12

Blackmagic Design 的 Resolve 视频编辑器 V14.0.1 需要 libpng12。不幸的是,只有 libpng16随新版本 17.10 一起提供。

有没有办法在 17.10 下恢复到 libpng12?如果是这样,我该如何获取 libpng12 - 当我搜索它时,synaptic 没有列出它。

答案1

Ubuntu 软件包libpng12-0适用于 trusty (14.04LTS) 和 xenial (16.04LTS),但不适用于 17.10。您必须要求软件制造商(即 Blackmagic Design)更新程序和/或安装程序以使用最新版本libpng16-16


解决方法是,您可以下载并安装.debXenial 软件包从 Ubuntu 网页在安装 Blackmagic Design 的 Resolve 视频编辑器之前。

  • 安装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,我检查了包裹信息

  • 依赖libpng12libc6 (>= 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 版本源码或者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

答案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 的风险。

相关内容