Як я можу запустити виконуваний файл з компакт-диска, якщо на ньому не встановлено виконуваний біт?


13

Підручник, який я використовую, постачався із компакт-диском, що містить кілька додаткових додатків. На мій приємний сюрприз, як видається, він включає інсталятор для Linux.

Файл readme на компакт-диску містить такі інструкції щодо встановлення:

ПК: 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

8
Що це за файл? 'файл / медіа / BDH \ DE / linux / install.bin'?

1
А-ха. Як не дивно, це насправді лише текстовий файл із .binрозширенням імені файлу. Як обтяжуюче вводить в оману.
ændrük

1
Ага - зрозумів. Так вирішено? Начебто, якщо це сценарій оболонки - ви можете 'bash / media / BDH \ DE / linux / install.bin' чи щось подібне зараз?

Відповіді:


7

Подивіться, який тип файлу отримав розширення для кошика.

file $filename

Якщо це не двійкові дані, це текст. Отже, яку програму потрібно використовувати з цим файлом?

head $filename

Перший рядок може прочитати #!/bin/bash. У цьому випадку запустіть

bash $filename

виконати його. Або скористайтеся будь-якою програмою, для якої був написаний файл біна, наприклад, python.


Я все ще думаю, як я можу подвійно клацнути по файлу та запустити його. Він все ще відмовляється запускатися, якщо файл має розширення '.bin'.
DTdev

7

Якщо проблема полягає в тому, що CDROM був змонтований 'noexec', ви можете повторно встановити його виконуваним.

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

так, правильно, дуже добре, добре працювали.
Silver Moon

4

Якщо це не сценарій / текст, а двійковий:

Для 64-бітних програм:

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

Для 32-бітних програм:

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

Джерело:

"Для виконання бінарних файлів використовуйте /lib64/ld-linux-x86-64.so.2 ./program.bin для 64-бітних програм та /lib/ld-linux.so.2 ./program.bin для 32-розрядних програм ті ». - коментар Lekensteyn до питання /ubuntu//a/17311/52853 13 квітня 2012 р.


1

монтуйте CDROM вручну за допомогою umask = 000, тобто

sudo mount  -o umask=000 /dev/sdXY /mount_point

1

Ви можете використовувати одне з обох:

bash -c <command>

або

sh -c <command>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.