Làm cách nào tôi có thể chạy một tệp thực thi từ CD khi nó không có tập bit thực thi?


13

Một cuốn sách giáo khoa tôi đang sử dụng đi kèm với một đĩa CD có chứa một vài ứng dụng bổ sung. Trước sự ngạc nhiên thú vị của tôi, nó dường như bao gồm một trình cài đặt cho Linux.

Tệp readme trên CD cung cấp các hướng dẫn cài đặt sau:

PC: Linux

  1. Nhấp đúp vào thư mục 'LINUX'
  2. Nhấp đúp vào tệp 'INSTALL.BIN'
  3. Làm theo hướng dẫn trên màn hình.

Nhưng làm điều này chỉ tạo ra thông báo lỗi sau:

Không thể hiển thị "/ media / BDH DE / linux / install.bin". Các tập tin là một loại không xác định

Cố gắng chạy trình cài đặt thông qua dòng lệnh dẫn đến lỗi quyền:

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

Trong khi, với sự thất vọng của tôi, thông báo không thông báo cho tôi về những quyền tôi đang thiếu, một cái nhìn nhanh về đầu ra của ls cho thấy rằng trình cài đặt chưa được đánh dấu thực thi.

Làm thế nào để tôi chạy nó?


Loại tệp là:

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

8
Đó là loại tập tin gì? 'tập tin / phương tiện / BDH \ DE / linux / install.bin'?

1
À ha. Thật kỳ lạ, nó thực sự chỉ là một tệp văn bản có .binphần mở rộng tên tệp. Làm thế nào nghiêm trọng gây hiểu lầm.
ændrük

1
Vâng - hình. Vậy giải quyết thế nào? Giống như nếu đó là tập lệnh shell - bạn có thể 'bash / media / BDH \ DE / linux / install.bin' hoặc một cái gì đó tương tự bây giờ?

Câu trả lời:


7

Xem loại tập tin nào đã được cung cấp một phần mở rộng bin.

file $filename

Nếu nó không phải là dữ liệu nhị phân, nó là văn bản. Vì vậy, chương trình nào sẽ được sử dụng với tập tin này?

head $filename

Dòng đầu tiên có thể đọc #!/bin/bash. Trong trường hợp đó chạy

bash $filename

để thực hiện nó. Hoặc sử dụng bất kỳ chương trình nào mà tệp bin được viết, python chẳng hạn.


Tôi vẫn nghĩ làm thế nào tôi có thể nhấp đúp vào tập tin và chạy nó. Nó vẫn không chịu chạy nếu tệp có phần mở rộng '.bin'.
DTdev

7

Nếu vấn đề là CDROM đã được gắn 'noexec', bạn có thể kết nối lại nó có thể thực thi được.

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

Vâng, đúng, rất tốt, làm việc tốt.
Mặt trăng bạc

4

Nếu nó không phải là tập lệnh / văn bản mà là nhị phân:

Đối với các chương trình 64 bit:

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

Đối với các chương trình 32 bit:

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

Nguồn:

"Để thực thi nhị phân, hãy sử dụng /lib64/ld-linux-x86-64.so.2 ./program.bin cho các chương trình 64 bit và /lib/ld-linux.so.2 ./program.bin cho 32 bit những cái đó. " - Nhận xét từ Lekensteyn về câu hỏi https://askubfox.com/a/17311/52853 ngày 13 tháng 4 năm 2012



1

Bạn có thể sử dụng một trong cả hai:

bash -c <command>

hoặc là

sh -c <command>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.