当 CD 中没有设置可执行位时,如何运行该可执行文件?

当 CD 中没有设置可执行位时,如何运行该可执行文件?

我使用的教科书附带一张 CD,里面有一些补充应用程序。令我惊喜的是,它似乎包含一个 Linux 安装程序。

CD 上的自述文件提供了以下安装说明:

电脑:Linux

  1. 双击文件夹“LINUX”
  2. 双击文件“INSTALL.BIN”
  3. 按照屏幕上的说明进行操作。

但这样做只会产生以下错误消息:

无法显示“/media/BDH DE/linux/install.bin”。该文件属于未知类型

尝试通过命令行运行安装程序会导致权限错误:

ak@aux:~$ ls /media/BDH\ DE/
linux  os x  readme.txt  windows xp  windows xp - no java
ak@aux:~$ ls -l /media/BDH\ DE/linux/
total 41177
-rw-r--r-- 1 ak ak 42164549 2005-07-26 03:39 install.bin
ak@aux:~$ /media/BDH\ DE/linux/install.bin
bash: /media/BDH DE/linux/install.bin: Permission denied

但令我失望的是,这条信息没有告诉我什么我缺乏权限,快速浏览 ls 的输出发现安装程序尚未标记为可执行文件。

我该如何运行它?


该文件的类型为:

ak@aux:~$ file /media/BDH\ DE/linux/install.bin
src/bdh-de/install.bin: POSIX shell script text executable

答案1

如果问题是 CDROM 以“noexec”方式安装,您可以重新安装它以执行。

sudo mount -o remount,exec /media/BDH\ DE/

答案2

查看哪种文件被赋予了 bin 扩展名。

file $filename

如果不是二进制数据,那就是文本。那么要用什么程序来处理这个文件呢?

head $filename

第一行可能是这样的#!/bin/bash。在这种情况下,运行

bash $filename

来执行它。或者使用为其编写 bin 文件的任何程序,例如 python。

答案3

如果它不是脚本/文本而是二进制文件:

对于 64 位程序:

/lib64/ld-linux-x86-64.so.2 ./program.bin

对于 32 位程序:

/lib/ld-linux.so.2 ./program.bin

来源:

“要执行二进制文件,对于 64 位程序使用 /lib64/ld-linux-x86-64.so.2 ./program.bin,对于 32 位程序使用 /lib/ld-linux.so.2 ./program.bin。” – Lekensteyn 对这个问题的评论https://askubuntu.com/a/17311/528532012 年 4 月 13 日

答案4

您可以使用以下其中一种:

bash -c <command>

或者

sh -c <command>

相关内容