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

问题描述 投票:0回答:14

我已经安装了 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
14个回答
146
投票

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

对于 32 位二进制文件:

sudo apt-get install libncurses5:i386

对于 64 位二进制文件:

sudo apt-get install libncurses5

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

sudo apt-get install ia32-libs


25
投票

加载共享库时出错: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

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


16
投票

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

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


15
投票

对于 Redhat Linux 8 试试这个:

sudo yum install libncurses*

10
投票

在 Arch Linux 上,您可以安装

ncurses5-compat-libs
AUR 软件包。

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


7
投票

在 Fedora 28 中使用:

sudo dnf install ncurses-compat-libs

5
投票

对于 Redhat Linux 这有帮助,

sudo yum install ncurses-compat-libs


4
投票

我使用

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

在 ubunutu 18.10 上


2
投票

在 Arch 上,我这样修复:

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

2
投票

在 Fedora 24 上安装

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


1
投票

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


0
投票

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

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

0
投票

Oracle Linux 8 / Red Hat 8 (EL8):默认情况下,这些平台不安装文件 /lib64/libtinfo.so.5。要解决此问题,请安装 ncurses-compat-libs 软件包: 百胜安装 ncurses-compat-libs

https://dev.mysql.com/doc/mysql-solaris-excerpt/8.0/en/binary-installation.html


0
投票

我在最近 3 个 Fedora(38、37、36)版本中遇到了这个问题。如果您想使用较旧的 x86_64 软件包,只需创建一个简单的符号链接即可解决该问题。

cd /usr/lib64/
ln -s libncurses.so.6 libncurses.so.5

链接之前

[root@terminus ~]# MegaCli64 -AdpAllInfo -aALL
MegaCli64: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

在符号链接之后。

[root@terminus lib64]# MegaCli64 -AdpAllInfo -aALL

Adapter #0
...
© www.soinside.com 2019 - 2024. All rights reserved.