![无法在Linux中执行二进制文件](https://linux22.com/image/1422260/%E6%97%A0%E6%B3%95%E5%9C%A8Linux%E4%B8%AD%E6%89%A7%E8%A1%8C%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6.png)
如果我在 Ubuntu 服务器中安装 spring 工具,它会显示以下错误消息。
bash: ./spring-tool-suite-3.6.1.RELEASE-e4.4-linux-gtk.tar.gz: cannot execute binary file
请有人帮助我。
答案1
正如保罗在注释中,文件名spring-tool-suite-3.6.1.RELEASE-e4.4-linux-gtk.tar.gz
表示一个 gzip 压缩的 tar 存档(这就是它的来源.tar.gz
)。压缩档案不是可执行文件并且不应被如此对待。在这种情况下,bash 拒绝它的做法完全正确。
在类 Unix 系统(包括 Linux)上,可执行文件通常没有特殊扩展名。(这与 Microsoft 世界中的做法不同。)脚本可能有或没有扩展名(例如.sh
.pl
或其他任何扩展名),但该扩展名只是文件名的一部分;它根本没有什么神奇之处,将其从文件名中删除不会影响文件的可执行性(但是,如果脚本被编写为调用自身或其他脚本并采用特定名称,则可能很重要)。
您需要提取存档,存档很可能附带安装说明,或者其中包含安装说明。要解压缩文件.tar.gz
(假设它确实是这样的),您需要cd
在该目录中创建一个新的临时目录,然后解压缩并解压存档:
$ mkdir spring-tool-suite
$ cd spring-tool-suite
$ tar -xfz ../spring-tool-suite-3.6.1.RELEASE-e4.4-linux-gtk.tar.gz
$ ls
...
参数tar
依次为:
x
为了提取档案f
输入(或输出)是文件(后文命名)z
输入(或输出)是(将是)gzip 压缩../spring-tool-suite-3.6.1.RELEASE-e4.4-linux-gtk.tar.gz
只是存档文件名
解压完存档后,查找名为 INSTALL、README、UPGRADE 的文件,或者其他可能相关的文件。您很可能在这里找到安装说明。
大多数存档都是这样制作的,它们会解压到一个新目录中,但我还是喜欢将存档解压到一个干净的目录中。如果存档不包含一个包含所有文件的根目录,那么清理起来会容易得多,并降低意外覆盖您自己的某些内容的风险;此外,您可能无论如何都想以某种方式将文件移动到其他地方,因此将它们从一个目录移动到另一个目录并没有太大区别。
.tar.bz2
你也很有可能在野外遇到文件。它们是一样的,只是它们bzip2压缩文件。对于这些,请将z
tar 的参数替换j
为。XZ 也正在成为一种流行的选择(按照惯例,文件扩展名为.tar.xz
),因此您可以使用J
。请注意,tar 的所有参数都是区分大小写。