Как исправить файл & ldquo; [Ошибка 30] Файловая система только для чтения & rdquo; при попытке установить?

Сценарии не обязательно имеют shebang

. Если скрипт был запущен из интерпретатора, вы не можете быть уверены, что он имеет shebang вообще. Скрипты, выполняемые из интерпретатора, не нуждаются в shebang, если вы вызываете интерпретатора для запуска кода.

Поэтому ответ отрицательный, нет команды, которая точно узнает, что такое язык ( интерпретатор) для запуска скрипта. Однако вы всегда можете заглянуть внутрь скрипта и посмотреть, есть ли у него shebang.

Короче говоря:

Когда вы запускаете скрипт, вызов интерпретатора всегда перекрывает возможные shebangs, исполняемый файл или нет, shebang или нет. Если он не исполняется и запускается из интерпретатора, сценарий не нуждается ни в каком shebang. Если сценарий запускается без вызова интерпретатора сначала, ему нужно (и использует) shebang, чтобы узнать, какой интерпретатор должен позвонить, и он должен быть исполняемым, чтобы иметь «разрешение» называть интерпретатора из его shebang.

Если сценарий не имеет shebang, внутри скрипта нет (direct *) информации, чтобы сообщить, какой интерпретатор использовать.

Сказав, что

Вы, конечно, всегда можете написать сценарий оболочки на всех , чтобы узнать, есть ли скрипт в shebang и прочитать интерпретатор из

Пример

#!/usr/bin/env python3
import subprocess
import sys

args = sys.argv[1:]; script = args[0]

try:
    lang = open(script).readlines()[0].replace("#!", "").strip().split()[-1]
    cmd = [lang, script]+args[1:]
    subprocess.call(cmd)
except (PermissionError, FileNotFoundError, IndexError):
    print("No valid shebang found")
Сохраните его как tryrun в $PATH (например, ~/bin, создайте каталог, если он не существует, выходит из системы и обратно), делает его исполняемым. Затем запуск:
tryrun /path/to/nonexecutablescript
вызывает (проверяет) правильный интерпретатор на моих невыполняемых сценариях python и bash.

Объяснение

Сохраните его как tryrun в $PATH (например, ~/bin, создайте каталог, если он не существует, выйдите из системы и зайдите в него) сделать его исполняемым. Затем:
tryrun /path/to/nonexecutablescript
вызывает (проверяет) правильный интерпретатор на моих невыполняемых сценариях python и bash.
Если он не может вызвать действительный интерпретатор, он поднимет либо PermissionError, либо FileNotFoundError.

Примечание

Расширение (.sh, .py и т. д.) не играет никакой роли в определении соответствующего интерпретатора в Linux.

(* Конечно, можно разработать «умный» алгоритм угадывания, чтобы определить синтаксис кода.)

2
задан 19 May 2012 в 13:43

6 ответов

Если Linux обнаружит проблему на жестком диске, она переключит файловую систему на чтение только для предотвращения повреждения файловой системы.

Так как это происходит во время установки, я бы предположил, что с компакт-диском что-то не так (т. е. плохой ISO). Вы можете это узнать, запустив опцию «check cd», которую вы получаете во время загрузки. Если это показывает ошибки, вам необходимо повторно загрузить и перезаписать установочный диск.

Если установочный диск окажется идеальным, это может быть проблема с оборудованием. Это может быть ваш жесткий диск, который терпит неудачу. Или, если это рабочий стол, он также может быть неисправным кабелем.

2
ответ дан 2 August 2018 в 02:22

Если Linux обнаружит проблему на жестком диске, она переключит файловую систему на чтение только для предотвращения повреждения файловой системы.

Так как это происходит во время установки, я бы предположил, что с компакт-диском что-то не так (т. е. плохой ISO). Вы можете это узнать, запустив опцию «check cd», которую вы получаете во время загрузки. Если это показывает ошибки, вам необходимо повторно загрузить и перезаписать установочный диск.

Если установочный диск окажется идеальным, это может быть проблема с оборудованием. Это может быть ваш жесткий диск, который терпит неудачу. Или, если это рабочий стол, он также может быть неисправным кабелем.

2
ответ дан 4 August 2018 в 18:08

Если Linux обнаружит проблему на жестком диске, она переключит файловую систему на чтение только для предотвращения повреждения файловой системы.

Так как это происходит во время установки, я бы предположил, что с компакт-диском что-то не так (т. е. плохой ISO). Вы можете это узнать, запустив опцию «check cd», которую вы получаете во время загрузки. Если это показывает ошибки, вам необходимо повторно загрузить и перезаписать установочный диск.

Если установочный диск окажется идеальным, это может быть проблема с оборудованием. Это может быть ваш жесткий диск, который терпит неудачу. Или, если это рабочий стол, он также может быть неисправным кабелем.

2
ответ дан 6 August 2018 в 02:37

Если Linux обнаружит проблему на жестком диске, она переключит файловую систему на чтение только для предотвращения повреждения файловой системы.

Так как это происходит во время установки, я бы предположил, что с компакт-диском что-то не так (т. е. плохой ISO). Вы можете это узнать, запустив опцию «check cd», которую вы получаете во время загрузки. Если это показывает ошибки, вам необходимо повторно загрузить и перезаписать установочный диск.

Если установочный диск окажется идеальным, это может быть проблема с оборудованием. Это может быть ваш жесткий диск, который терпит неудачу. Или, если это рабочий стол, он также может быть неисправным кабелем.

2
ответ дан 7 August 2018 в 20:14

Если Linux обнаружит проблему на жестком диске, она переключит файловую систему на чтение только для предотвращения повреждения файловой системы.

Так как это происходит во время установки, я бы предположил, что с компакт-диском что-то не так (т. е. плохой ISO). Вы можете это узнать, запустив опцию «check cd», которую вы получаете во время загрузки. Если это показывает ошибки, вам необходимо повторно загрузить и перезаписать установочный диск.

Если установочный диск окажется идеальным, это может быть проблема с оборудованием. Это может быть ваш жесткий диск, который терпит неудачу. Или, если это рабочий стол, он также может быть неисправным кабелем.

2
ответ дан 10 August 2018 в 08:36

Если Linux обнаружит проблему на жестком диске, она переключит файловую систему на чтение только для предотвращения повреждения файловой системы.

Так как это происходит во время установки, я бы предположил, что с компакт-диском что-то не так (т. е. плохой ISO). Вы можете это узнать, запустив опцию «check cd», которую вы получаете во время загрузки. Если это показывает ошибки, вам необходимо повторно загрузить и перезаписать установочный диск.

Если установочный диск окажется идеальным, это может быть проблема с оборудованием. Это может быть ваш жесткий диск, который терпит неудачу. Или, если это рабочий стол, он также может быть неисправным кабелем.

2
ответ дан 15 August 2018 в 20:44

Другие вопросы по тегам:

Похожие вопросы: