我正在尝试在 Linux ubunto(版本 11.04)上安装 JasperReports Server 4.1 并收到以下消息:
-bash: ./jasperreports-server-cp-4.1.0-linux-x64-installer.run: cannot execute binary file
知道我应该做什么才能安装 Jasper 吗?
之前,我在Linux Red Hat上安装JasperReports Server 4.0没有任何问题。它与 Linux ubuntu 特别相关吗?
以下是命令uname
和 的输出ls -al
:
uname -a
Linux 64-cncrclinrpts 2.6.38-11-generic-pae #48-Ubuntu SMP Fri Jul 29 20:51:21 UTC 2011 i686 i686 i386 GNU/Linux
ls -al jasperreports-server-cp-4.1.0-linux-x64-installer.run
-rwxr-xr-x 1 root root 329844862 2011-09-09 09:11 jasperreports-server-cp-4.1.0-linux-x64-installer.run
答案1
您正在尝试在 32 位系统上运行 64 位二进制文件。
您的uname -a
指示您正在运行 32 位内核,并且您尝试运行的文件名给出了线索“x64”。运行file
这个文件将为您提供整个故事。
你可能想要jasperreports-server-cp-4.1.0-linux-x86-installer.run
或者,您可以在 64 位 Linux 系统上运行安装程序。
答案2
这可能表明解释器不存在,尽管在我的系统上,我通过bash
必须添加的一些额外魔法得到了不同的(更有用的)错误消息。
$ cat > test.sh <<EOF
#!/bin/nonexistent/sh
echo "Hi."
EOF
$ chmod u+x test.sh
$ ./test.sh
-bash: ./test.sh: /bin/nonexistent/sh: bad interpreter: No such file or directory
如果您了解更多有关此文件的信息,将会很有帮助:它说了什么file jasperreports-server-cp-4.1.0-linux-x64-installer.run
?如果它说它是一个动态 elf 二进制文件,它ldd jasperreports-server-cp-4.1.0-linux-x64-installer.run
说了什么?
答案3
chmod +x jasperreports-server-cp-4.1.0-linux-x64-installer.run
然后尝试再次运行它,如果它仍然不起作用,该文件的 ls -al 是什么。
答案4
你可以跑去strace ./jasperreports-server-cp-4.1.0-linux-x64-installer.run
看看那里到底发生了什么。