17.10 需要 Libpng12

Ric*_*son 13 libpng 17.10

Blackmagic Design 的 Resolve 视频编辑器 V14.0.1 需要 libpng1 2。不幸的是,新的 17.10 版本只提供了libpng1 6

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

Jai*_*ime 18

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


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

  • 安装 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
    
    Run Code Online (Sandbox Code Playgroud)

注意:从旧发行版安装软件包可能会破坏您的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
    
    Run Code Online (Sandbox Code Playgroud)
  • 请注意,没有其他 Ubuntu 软件包需要最新版本,libpng12因为它不包含在存储库中。最新的程序依赖于 libpng16-16并且两个库可以共存。

  • 我认为这个包不太可能破坏apt.

如果您不确定自己在做什么,请不要尝试安装旧发行版的软件包。


Jai*_*ime 5

您可以编译libpng.

  • 如果您有要安装的程序的源代码,则可以使用原始源代码。安装该库后,您可以使用它来配置和编译其他应用程序。
  • 如果您没有程序的源代码而只有.deb安装程序,例如,如果程序是商业产品,您必须安装一个包以避免安装过程中出现错误。您可以使用以下说明从源代码创建包。

从官方源代码编译libpng

请注意,旧的 libpng v1.2.x 可能存在很多漏洞。建议使用来自sourceforgegithub 的最新 1.2.x 版本。这是针对 v.1.2.59 版本的。

  1. 安装软件包以编译软件(如果未安装)

    $ sudo apt-get install build-essential
    
    Run Code Online (Sandbox Code Playgroud)
  2. 获取并提取源代码

    $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz
    $ tar xvfz v1.2.59.tar.gz 
    
    Run Code Online (Sandbox Code Playgroud)
  3. 编译并安装库

    $ cd libpng-1.2.59/
    $ ./configure
    $ make check
    $ sudo make install
    
    Run Code Online (Sandbox Code Playgroud)

注意:安装库不会将依赖项设置libpng12apt. 你必须使用一个.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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用.dsc页面中的文件下载源代码文件

    $ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc
    
    Run Code Online (Sandbox Code Playgroud)
  3. 应用 Ubuntu 提供的补丁提取源代码

    $ dpkg-source -x libpng_1.2.54-1ubuntu1.dsc 
    
    Run Code Online (Sandbox Code Playgroud)
  4. 检查包的依赖关系

    $ cd libpng-1.2.54/
    $ dpkg-buildpackage -rfakeroot -b
    
    Run Code Online (Sandbox Code Playgroud)

    它显示未满足的构建依赖项。就我而言...

     :
    dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev
    
    Run Code Online (Sandbox Code Playgroud)
  5. 安装依赖项

    $ sudo apt-get install debhelper libtool automake autoconf zlib1g-dev
    
    Run Code Online (Sandbox Code Playgroud)
  6. 编译

    $ fakeroot debian/rules binary
    
    Run Code Online (Sandbox Code Playgroud)

    生成的包将位于父文件夹中

    ../libpng12-0_1.2.54-1ubuntu1_amd64.deb
    ../libpng12-dev_1.2.54-1ubuntu1_amd64.deb
    ../libpng3_1.2.54-1ubuntu1_amd64.deb
    
    Run Code Online (Sandbox Code Playgroud)
  7. 使用生成的包

    $ cd ..
    $ sudo dpkg -i libpng12-0_1.2.54-1ubuntu1_amd64.deb
    
    Run Code Online (Sandbox Code Playgroud)

注意:为旧发行版编译和安装软件包与为旧发行版使用二进制软件包一样危险。所描述的libpng12包编译过程仅使用 Ubuntu 17.x 存储库中的包,不会导致错误。我认为使用生成的包不会破坏apt.