【问题标题】:error while loading shared libraries: libncurses.so.5:加载共享库时出错:libncurses.so.5:
【发布时间】:2013-06-05 00:47:23
【问题描述】:

我已安装 Android Studio 并尝试在其中运行我的第一个项目,但出现以下错误:

Error Output was: /home/user/android-studio/sdk/platform-tools/adb: error while loading       shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

我已经尝试过运行

sudo ldconfig

但它没有帮助。我最近安装了 libncurses(在使用 android studio 之前)。

我该怎么办?

【问题讨论】:

    标签: linux ubuntu shared-libraries


    【解决方案1】:

    如果未安装 libncurses,请安装并重试。

    对于 32 位二进制文​​件:sudo apt-get install libncurses5:i386

    对于 64 位二进制文​​件: sudo apt-get install libncurses5

    还可以使用此命令安装库集合,

    sudo apt-get install ia32-libs

    【讨论】:

    • 这个真的解决了 Ubuntu 20.04 的问题!!
    • 在 Ubuntu 20.04 中也适用于我。谢谢!
    • 也适合我。我正在使用 Ubuntu 20.04。非常感谢
    • 我在包安装过程中得到这个 E: 包 'ia32-libs' 没有 20.04 的安装候选
    • 遇到E: Unable to locate package libncurses5:i386,通过dpkg --add-architecture i386 && apt update解决。
    【解决方案2】:

    加载共享库时出错:libncurses.so.5

    如果你看到这个,你的发行版可能安装了更新版本的 libncurse。首先找出你的发行版有什么版本的 libncurses:

    $ ls -1 /usr/lib/libncurses*
    /usr/lib/libncurses.so
    /usr/lib/libncurses++.so
    /usr/lib/libncurses++w.so
    /usr/lib/libncursesw.so
    /usr/lib/libncurses++w.so.6
    /usr/lib/libncursesw.so.6
    /usr/lib/libncurses++w.so.6.0
    /usr/lib/libncursesw.so.6.0
    

    在本例中,我们处理的是版本 6,因此我们创建了两个符号链接:

    $ sudo ln -s /usr/lib/libncursesw.so.6.0 /usr/lib/libncurses.so.5
    $ sudo ln -s /usr/lib/libncursesw.so.6.0 /usr/lib/libtinfo.so.5
    

    之后,程序应该可以正常运行了。

    【讨论】:

    • 同样,这并不能回答问题,因为它指的是在提出问题时不可用的软件。
    • 虽然它可能不能解决最初的人物问题,但它解决了我在 Arch 64 上的问题,产生了与 OP 完全相同的错误消息。
    • ls: cannot access '/usr/lib/libncurses*': No such file or directory apt 说 libncurses5libncurses6 都已安装
    • 如果 ls 命令失败,请使用 find: find /usr/lib/ -name *ncurses* 尝试它
    【解决方案3】:

    如果您绝对确定已安装 libncurses(又名 ncurses),就像您已成功完成库的“ls”一样,那么您可能正在运行 64 位 Linux 操作系统并且只有 64 位 libncurses已安装,当正在运行的程序 (adb) 是 32 位时。

    如果是这样,32 位程序无法链接到 64 位库(并且无论如何也不会找到它),因此您可能必须安装 libcurses 或 ncurses(32 位版本)。同样,如果您正在运行 64 位 adb,那么您的 ncurses 可能是 32 位(可能但不太可能的情况)。

    【讨论】:

    • 您还可以检查 LD_LIBRARY_PATH 中的库。可能是您的路径设置不正确,因此找不到库。
    • 在我的情况下,apt 表示已安装 libncurses 的每个版本 5 和 6 的 32 位和 64 位版本,但 Android Studio 仍在抱怨不存在 @ 987654323@.
    • @Tooniis 版本号不是架构,架构与计算机中的 CPU 大致匹配,而版本号与“旧/新”版本匹配。如果您在不同的架构下安装了正确的版本,您仍然可能缺少正确的库架构。这只是令人困惑,因为 Intel 和 AMD 芯片支持多种架构,i386 支持向后兼容,x86_64 是现代架构。
    • 我告诉过你我已经安装了 i386 和 amd64 架构的版本 5 和 6,所以 Android Studio 应该能够找到它需要的任何东西。
    • @Tooniis 抱歉,没有看到关于“两种架构”的部分。在这种情况下,通常是因为您在启动 Android Studio 之前在 shell 中缺少/错误配置的 LD_LIBRARY_PATH,或者您的 Android Studio 为该功能维护了自己的配置。我会检查编译器选项(抱歉,Android Studio 与我大量使用它时相比发生了很大变化,所以我不能只指出该选项)。无论如何,一旦你配置了 /usr/lib/(32 位)或 /usr/lib64(64 位),你应该会看到成功。
    【解决方案4】:

    在 Arch Linux 上你可以安装 ncurses5-compat-libs AUR 包。

    仅供参考,它在 Arch Wiki android 页面中有所提及,以防万一您需要 Android Studio 的其他依赖项:https://wiki.archlinux.org/index.php/Android

    【讨论】:

      【解决方案5】:

      对于 Redhat Linux 8,试试这个:

      sudo yum install libncurses*
      

      【讨论】:

        【解决方案6】:

        在 Fedora 28 中使用:

        sudo dnf install ncurses-compat-libs
        

        【讨论】:

        • 这在 Fedora 30 上也成功了。德州仪器 Code Composer Studio 9(2019 年)基于 eclipse 也需要 ncurses5,而 6 是 Fedora 上的默认值。
        【解决方案7】:

        在 Arch 上,我是这样修复的:

        sudo ln -s /usr/lib/libncursesw.so.6 /usr/lib/libtinfo.so.6
        

        【讨论】:

          【解决方案8】:

          我用

          解决了这个问题
          ln -s libncursesw.so.5  /lib/x86_64-linux-gnu/libncursesw.so.6
          

          在 ubunutu 18.10 上

          【讨论】:

          • 因为我已经在我的 ubuntu 20.04 中安装了 libncursesw6,所以我做了 sudo apt install libncursesw6 并解决了它。所以我额外安装了版本 5,没有添加符号链接。我认为你的方法也没有害处。
          【解决方案9】:

          您的系统可能不提供 android studio 使用的版本的 ncurses 库。我的 Arch linux 安装只有 ncurses 6,但 android studio 需要版本 5。 您可以检查您的发行版是否具有兼容性包,或使用 Rahmat Aligos 建议的解决方案。

          【讨论】:

          • 这个问题是在 ncurses 6 发布前两年提出的。
          • 有点晚了(似乎是我的事),但我在写答案时遇到了这个具体问题。
          【解决方案10】:

          在 Fedora 24 上安装 ncurses-compat-libs 帮助我解决了这个问题 (unable to start adb error while loading shared libraries: libncurses.so.5)

          【讨论】:

            【解决方案11】:

            这对 Redhat Linux 有帮助,

            sudo yum install ncurses-compat-libs

            【讨论】:

              【解决方案12】:

              Mixaz 的上述答案对我有用。但是,由于 PGP 检查失败,我在安装软件包时遇到了问题。通过跳过签名安装它,你可以试试这个:

              yaourt --m-arg "--skipchecksums --skippgpcheck" -Sb <your-package>
              

              【讨论】:

                猜你喜欢
                • 2022-07-16
                • 2013-05-26
                • 1970-01-01
                • 2018-10-19
                • 2020-09-24
                • 1970-01-01
                • 1970-01-01
                • 2011-05-29
                相关资源
                最近更新 更多