私はこれが基本的に正しい質問であることを知っていますhttps://stackoverflow.com/questions/48306849/libz.so.1
しかし、それに対する答えはすべてシンボリックリンクを生成するように言うので、私にとっては正しいようではありません。しかし、
私のDebian Bulls Idにはすでにあり、そして両方がlibz.so
シンボリックlibz.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
zlib1g
これはDebianやlibpng16-16
パッケージの問題ではなく、Debianのバグです。バイナリ提供mitmweb
。これには、実行時に一時ディレクトリに解凍された複数のライブラリが含まれており、LD_LIBRARY_PATH
動的リンカがそのライブラリを使用できるように一時ディレクトリに設定されます。これは提供されたバイナリでは正しく機能しますmitmweb
が、実行しようとするブラウザLD_LIBRARY_PATH
には渡されます。mitmweb
ライブラリパッケージにはlibz
バージョン1.2.8が含まれており、満足できないほど古いですlibpng16-16
。したがって、必要なブラウザをlibpng16-16
起動できません。 (バイナリは以前のディストリビューションに基づいて構築されました。これにより、最終的には新しいライブラリが不要になります。.)
それ自体は簡単な修正はなく、mitmweb
ソースから再構築する方法はありませんが、エラーを簡単に解決できます。mitmweb
起動を待ってから、ブラウザ(または指定した場合は適切なURL)でhttp://localhost:8080を開きます。--web-host
または)を使用する他のホストまたはポート--web-port
。
mitmweb
(関心のある読者は、実行せずに分析を通じて構造について学ぶことができますbinwalk
。)