В Linux, помимо пакетных менеджеров, часто требуется установка программ, приложений или утилит из файлов с расширениями .sh или .run. Эти скрипты, по сути, самораспаковывающиеся архивы или сценарии инсталляции, требуют особого подхода. Данная инструкция детально объяснит весь процесс, аргументируя каждый шаг и освещая потенциальные «подводные камни».
Суть файлов .sh и .run
Файл .sh (shell script) — текстовый файл, содержащий последовательность команд для оболочки Linux (bash, sh). .run — бинарные исполняемые файлы, содержащие данные и скрипт для их полноценной установки. Их применение обусловлено:
- Кросс-дистрибутивность: Один файл работает на большинстве дистрибутивов Linux, без отдельных пакетов.
- Проприетарное ПО: Многие коммерческие программы используют этот метод для распространения инсталляторов.
- Сложность зависимостей: Установка требует специфических действий, трудно автоматизируемых через стандартные пакетные менеджеры.
Подготовка к запуску
Прежде чем приступить к запуску скрипта, выполните подготовительные шаги.
Загрузка и расположение файла
Убедитесь, что файл .sh или .run загружен. Переместите его в удобную директорию. Откройте терминал (консоль, командная строка) и перейдите в эту директорию командой cd. Пример: cd ~/Downloads.
chmod: Предоставление прав
Это критический шаг. Загруженные файлы по умолчанию не имеют разрешения на выполнение, что вызывает ошибку «Permission denied». Для предоставления прав доступа используйте утилиту chmod. Добавление разрешения для текущего пользователя:
chmod +x имя_файла.sh
или
chmod +x имя_файла.run
Флаг +x означает «добавить разрешение на выполнение». Без этого инсталляция не начнется.
Запуск исполняемого файла
После предоставления прав доступа можно приступить к запуску исполняемого файла.
Выполнение скрипта
Для запуска скрипта в текущей директории используйте префикс ./, указывающий на текущий путь:
./имя_файла.sh
или
./имя_файла.run
Если скрипт не имеет корректной «шебанги» (например #!/bin/bash) или вы хотите явно указать оболочку, можно использовать:
bash имя_файла.sh
или
sh имя_файла.sh
Bash — наиболее распространенная оболочка, но скрипты могут быть написаны для других.
sudo для системной инсталляции
Если программа требует установки в системные директории (/opt, /usr/local) или изменения системных настроек, потребуются права доступа суперпользователя. Используйте sudo:
sudo ./имя_файла.sh
Будьте осторожны с sudo, так как это дает скрипту полные административные права доступа. Всегда убеждайтесь в надежности источника программы.
Решение возможных проблем
Установка через .sh или .run файлы не всегда проходит гладко. Распространенные ошибки:
- «Permission denied»: Отсутствие прав доступа. Решение:
chmod +x имя_файла.sh. - Отсутствие зависимостей: Скрипт требует библиотек/пакетов. Ошибка указывает на зависимости. Решение: Установите через пакетный менеджер (
sudo apt install имя_пакета). Руководство может помочь. - Неправильная оболочка: Скрипт для bash, выполняемый через sh (симлинк на dash), может вызвать ошибки. Решение: Явно укажите оболочку:
bash имя_файла.sh. - Некорректный путь: Убедитесь, что вы в той же директории, что и файл, или указываете полный путь. Как конвертировать CentOS 8 в CentOS 8 Stream
- Ошибки выполнения внутри скрипта: Плохо написанные или несовместимые с вашей версией Linux скрипты. Читайте вывод терминала.
Установка программ через .sh или .run файлы — важный инструмент, но со своими особенностями.
Преимущества:
- Гибкость: Установка программ, недоступных в стандартных репозиториях.
- Актуальность: Быстрый способ получить новейшую версию приложения.
- Универсальность: Один файл работает на разных дистрибутивах.
Недостатки:
- Управление зависимостями: Отсутствие автоматического разрешения зависимостей, что ведет к ручной установке пакетов.
- Удаление: Программы не интегрируются с системными менеджерами пакетов; удаление требует ручного поиска файлов.
- Безопасность: Запуск произвольного скрипта может быть угрозой, особенно с sudo. Проверяйте источник.
- Обновления: Требуют ручной загрузки и повторной инсталляции.
