Debian에서 'ZLIB_1.2.9' 버전을 찾을 수 없습니다(libpng16.so.16에 필요).

Debian에서 'ZLIB_1.2.9' 버전을 찾을 수 없습니다(libpng16.so.16에 필요).

나는 이것이 기본적으로 정확한 질문이라는 것을 알고 있습니다https://stackoverflow.com/questions/48306849/libz.so.1, 그러나 거기에 대한 대답은 모두 심볼릭 링크를 생성하라고 말하기 때문에 나에게는 올바른 것 같지 않습니다 . 하지만,

내 데비안 불스아이에는 이미 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이는 데비안 이나 libpng16-16패키지 의 문제가 아니라 데비안의 버그입니다 .바이너리 제공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.)

관련 정보