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
。