文件存在但无该文件或目录

文件存在但无该文件或目录

bitcoind我在 /usr/bin/bitcoind 中有一个名为:

bitcoin@Titan:~$ ll /usr/bin | grep bitcoind
-rwxr-xr-x  1 bitcoin bitcoin 7789600 Nov 25 10:39 bitcoind*

但是,我无法执行它:

bitcoin@Titan:~$ bitcoind
-bash: /usr/bin/bitcoind: No such file or directory

sudo没有帮助:

bitcoin@Titan:~$ sudo bitcoind
sudo: unable to execute /usr/bin/bitcoind: No such file or directory

发现有提示说这是因为缺少一些必需的库,所以尝试使用“ldd”来找到它们:

bitcoin@Titan:~$ ldd /usr/bin/bitcoin
ldd: /usr/bin/bitcoin: No such file or directory

答案1

您尝试在 64 位系统中运行 32 位可执行文件。这不是问题,但您需要在系统上安装一些软件包才能执行此操作。

将32位架构添加到软件包库中:

sudo dpkg --add-architecture i386

更新包缓存:

sudo apt-get update

并安装所需的软件包:

sudo apt-get install libc6:i386 libstdc++6:i386 libncurses5:i386 

此后,您应该能够执行 32 位可执行文件。

一些背景知识:

ldd返回,not a dynamic executable因为它不是 64 位可执行文件,因此不是 64 位动态可执行文件。要执行 64 位着色对象(如您的可执行文件),必须有一个动态链接器:Linux 加载器。通常它位于/lib。在具有 32 位链接器的 64 位 Linux 系统中,有两个链接器/加载器: 中的 32 位加载器/lib32/ld-linux.so和 中的 64 位加载器/lib64/ld-linux.so。32 位可执行文件需要 32 位库,因此您的可执行文件可能需要更多库。使用 将它们安装在基于 Debian 的系统中apt-get install libxyz:i386

相关内容