无法在Linux中执行二进制文件

无法在Linux中执行二进制文件

如果我在 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压缩文件。对于这些,请将ztar 的参数替换j为。XZ 也正在成为一种流行的选择(按照惯例,文件扩展名为.tar.xz),因此您可以使用J。请注意,tar 的所有参数都是区分大小写。

相关内容