在 Debian 中找不到版本“ZLIB_1.2.9”(libpng16.so.16 需要)

在 Debian 中找不到版本“ZLIB_1.2.9”(libpng16.so.16 需要)

我知道这基本上是一个确切的问题https://stackoverflow.com/questions/48306849/,但那里的答案对我来说似乎并不正确,因为他们都说创建libz.so.1符号链接。然而,

在我的 Debian bullseye 中,我已经有了libz.solibz.so.1,两者都符号链接到libz.so.1.2.11.

所以这似乎是一个libpng16.so.16坚持使用较低版本的ZLIB(v1.2.9)的问题,而我的已经是了v.1.2.11,对吧?

以下是所有详细信息:

$ mitmweb
/usr/bin/x-www-browser: /tmp/_MEIi9PAKI/libz.so.1: version `ZLIB_1.2.9' not found
 (required by /lib/x86_64-linux-gnu/libpng16.so.16)

cd /usr/lib/x86_64-linux-gnu

$ ls -l libz.so*
lrwxrwxrwx 1 root root     36 2020-02-24 16:07 libz.so -> /lib/x86_64-linux-gnu/libz.so.1.2.11
lrwxrwxrwx 1 root root     14 2020-02-24 16:07 libz.so.1 -> libz.so.1.2.11
-rw-r--r-- 1 root root 113088 2020-02-24 16:07 libz.so.1.2.11

$ apt-cache policy libpng16-16:amd64
libpng16-16:
  Installed: 1.6.37-3
  Candidate: 1.6.37-3
  Version table:
 *** 1.6.37-3 500
        500 http://deb.debian.org/debian bullseye/main amd64 Packages
        100 /var/lib/dpkg/status

$ ldd /lib/x86_64-linux-gnu/libpng16.so.16
    linux-vdso.so.1 (0x00007fff01872000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fa21425d000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa214119000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa213f54000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fa2142c2000)

$ realpath /usr/bin/x-www-browser
/export/opt/google/chrome/google-chrome

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux bullseye/sid

答案1

这不是Debian 中的zlib1glibpng16-16软件包的问题,​​而是 Debian 中的一个错误提供的二进制文件mitmweb。它们包括许多在运行时解压到临时目录中的库;LD_LIBRARY_PATH设置为临时目录,以便动态链接器将使用那里的库。这对于 提供的二进制文件运行良好mitmweb,但LD_LIBRARY_PATH会传递到mitmweb尝试启动的浏览器。

该库包包含libz版本 1.2.8,该版本太旧,无法满足libpng16-16.结果,需要的浏览器libpng16-16无法启动。 (二进制文件是基于旧发行版构建的这样他们最终就不需要新的库.)

本身没有简单的修复方法mitmweb,无法从源代码重建它,但您可以轻松解决该错误:等待mitmweb启动,然后在浏览器中打开 http://localhost:8080 (或者任何合适的 URL,如果您指定另一个主机或端口使用--web-host--web-port)。

mitmweb(有兴趣的读者可以通过分析来了解 的结构,无需运行它binwalk。)

相关内容