我在运行文件 ecl.e 时遇到问题,它是一个 32 位程序。
如果我使用 bash 运行,我会得到以下信息:
bash /home/user/miniconda2/envs/iraf27/iraf//bin.linux/ecl.e
/home/user/miniconda2/envs/iraf27/iraf//bin.linux/ecl.e: /home/user/miniconda2
/envs/iraf27/iraf//bin.linux/ecl.e: cannot execute binary file
和,
./home/user/miniconda2/envs/iraf27/iraf//bin.linux/ecl.e
-bash: ./home/user/miniconda2/envs/iraf27/iraf//bin.linux/ecl.e: No such file or directory
我在 x86_64 上运行该程序。所以我明白没有正确的库会出现问题。我希望通过获取库来解决这个问题:
apt-get update
sudo apt-get install libc6:i386 libz1:i386 libncurses5:i386
libbz2-1.0:i386 libuuid1:i386 libxcb1:i386 libxmu6:i386
但问题仍然存在。
如果我在其上运行文件,则输出如下:
file /home/user/miniconda2/envs/iraf27/iraf//bin.linux/ecl.e: ELF 32-bit LSB executable,
Intel 80386, version 1 (SYSV), dynamically linked,
interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.9, not stripped
和 ldd:
ldd /home/user/miniconda2/envs/iraf27/iraf//bin.linux/ecl.e
not a dynamic executable
答案1
此错误通常意味着内核无法处理可执行文件格式。如果您使用 Windows 10 的 Windows On Linux 子系统(该子系统仅运行 64 位可执行文件),则会发生这种情况。如果您将 Ubuntu 更新到 18.04 或 18.10,则可以通过 本机安装 64 位版本sudo apt install iraf
。