【问题标题】:/lib/x86_64-linux-gnu/libz.so.1: version `ZLIB_1.2.9' not found/lib/x86_64-linux-gnu/libz.so.1:找不到版本“ZLIB_1.2.9”
【发布时间】:2018-06-26 16:08:58
【问题描述】:

我是 linux 新手,在 Ubuntu 16.04 上使用 Eclipse Oxygen.2 Release 4.7.2

我收到了错误:

/usr/lib/opencv-2.4.13.5/build/lib/libopencv_java2413.so:/lib/x86_64-linux-gnu/libz.so.1:找不到版本“ZLIB_1.2.9”(/home 需要/mel3/anaconda/lib/libpng16.so.16)

我已尝试升级和重新加载,但不确定是否存在路径错误或发生了什么。非常感谢帮助

【问题讨论】:

  • 请更改接受的答案。据报道,目前的一个非常危险,可能会破坏系统。这篇文章非常受欢迎(并且是第一个出现在 google 中的帖子),因此它可能会误导很多人。

标签: eclipse opencv


【解决方案1】:

如果 Kamrul hassan 的解决方案损坏了您的电脑,请不要惊慌并这样做:

sudo ldconfig

恢复到之前的状态。

【讨论】:

  • 非常感谢,我真的害怕我的电脑坏了哈哈
  • 非常感谢!你救了我!
【解决方案2】:

一个安全的选择而不是弄乱系统库是下载(或构建)libz.so.1.2.9 并将其放在可执行文件的目录中(或任何地方)并导出 LD_LIBRARY_PATH到那个目录

例如

cd /<DIRECTORY OF YOUR EXECUTABLE NEEDING ZLIB__1.2.9>/
export LD_LIBRARY_PATH=$PWD

现在您的可执行文件将从新位置而不是 /lib/x86_64-linux-gnu 加载 zlib

检查

ldd <executable>

zlib 应该从新的 LD_LIBRARY_PATH 引用

【讨论】:

    【解决方案3】:

    接受的答案对我也不起作用,我真的建议在对广泛使用的二进制文件进行符号链接时要小心,例如/lib/x86_64-linux-gnu/libz.so.1

    zlib-1.2.9make uninstall 将破坏这个符号链接,这将破坏大量的包并成为 huge pain to fix

    Alex 的解决方案对我有用,而且破坏性要小得多,因为您只是在修改可执行文件目录中的符号链接,而不是整个系统。

    【讨论】:

    • 那你为什么要重复他的回答?
    • 这篇文章确实救了我。他发生在我身上的确切恐惧以及他与huge pain to fix 的链接是我找到解决问题的方法的唯一原因。
    • 当时没有足够的代表发表评论,并在遵循接受的答案后花费了大量时间试图恢复 libz.so.1。亚历克斯的帖子当时也没有投票,这很不幸,因为它是一个比公认的解决方案更安全的解决方案。只是想给大家省点麻烦,没必要三度。
    • 谢谢!我认为他在重复答案,因为它为我的答案提供了必要的背景。
    【解决方案4】:

    接受的答案对我不起作用,但在此处进行操作:

    https://ubuntuforums.org/showthread.php?t=2375927

    重复答案:

    cd /your_software/../lib/ (the directory containing libz.so.1)
    mv libz.so.1 libz.so.1.old
    ln -s /lib/x86_64-linux-gnu/libz.so.1
    

    【讨论】:

    • 这对我有用。是否可以询问问题是什么以及您的sn-p如何解决它?很高兴了解此解决方案为何有效。
    • Ubuntu 18.04:我遵循了这个解决方案,但不得不对链接库进行一些即兴创作。基本上我将 libz.so 和 libz.so.1 软链接到 /lib/x86_64-linux-gnu/libz.so.1(它又指向 libz.so.1.2.11),并且它起作用了!
    • 为什么这个符号链接不断被覆盖,我如何使这个修复永久化?
    【解决方案5】:

    Download Zlib 1.2.9 然后运行这些命令

    tar -xvf ~/Downloads/zlib-1.2.9.tar.gz
    cd zlib-1.2.9
    sudo -s
    ./configure; make; make install
    cd /lib/x86_64-linux-gnu
    ln -s -f /usr/local/lib/libz.so.1.2.9/lib libz.so.1
    cd ~
    rm -rf zlib-1.2.9
    

    详情请访问link

    【讨论】:

    • 我有同样的问题,但我使用的是 Fedora 服务器。文件的路径是什么?我没有“/lib/x86_64-linux-gnu”。
    • 在许多系统上完全遵循这些说明是危险的,并且会破坏 zlib 和依赖它的一切。在尝试此解决方案之前,请考虑以下答案
    • 我使用的是 ubuntu 18.04
    • 这可能会弄乱系统上的其他二进制文件和库依赖项!请参阅下面的 Alex Kaszynski 的答案以获得正确和安全的答案。
    • 确认,在我的 Ubuntu 16 上进行此更改后,wifi 将无法连接到任何网络。我已将 /lib/x86_64-linux-gnu/libz.so.1 的符号链接更改回 /lib/x86_64-linux-gnu/libz.so.1.2.8 并立即连接 wifi。但对我来说这个答案有帮助,因为我有 AppImage 并且下一个答案不适合我
    猜你喜欢
    • 1970-01-01
    • 2023-01-17
    • 1970-01-01
    • 2023-02-23
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-08
    相关资源
    最近更新 更多