Как установить приложение sh linux
deb-пакеты
Файлы .deb это установочные пакеты проекта Debian, ныне весьма успешно используемые во многих дистрибутивах Linux. Для установки такого пакета необходимо скачать его из сети или получить на каком-то носителе (CD, DVD, флешка).
После чего выполнить в терминале команду вида sudo dpkg -i [путь к файлу/имя файла.deb], система попросит пароль супер пользователя и начнет установку.
К примеру, я скачал Teamviewer с официального сайта и хочу установить его в систему. В моем случае команда будет выглядеть так:
Заметьте, терминал Linux спокойно воспринимать кириллические символы, поэтому путь надо писать как есть.
В принципе, можно не писать весь путь к файлу целиком в одной команде, а сначала зайти в каталог, где находится файл
а затем установить программу
sh-инсталлятор
Этот способ чем-то похож на установку программ в Windows. По крайней мере здесь вы тоже увидите мастер установки. Правда, для этого нужно запустить его через всё тот же терминал.
Например, я скачал NetBeans и хочу установить его в систему. В данном случае шагов будет несколько, поэтому будет разумнее сразу перейти в каталог с файлом.
Затем даем файлу права на установку
После чего устанавливаем файл
В случае с .sh файлами есть и другие команды. Например, я мог бы установить NetBeans командой
Самораспаковывающиеся архивы tar.gz
Такие программы вообще не требуют установки, их достаточно просто распаковать в любое место не компьютере. Общепринятая директория при этом /opt.
Здесь можно провести аналогию с самораспаковывающимися архивами в Windows. Довольно много программ в Windows имеют так называемые Portable версии. Здесь примерно то же самое.
RPM-пакеты
Процедура установки, в общем-то, схожая с deb-пакетами. RPM-пакеты используются в дистрибутивах Red Hat, Fedora, openSUSE, CentOS и других.
Продолжим наш пример с Teamviewer. Для установки RPM-пакета мне нужно сказать файл с расширением .rpm с сайта программы, после чего выполнить в терминале следующую команду:
Или, перейдя сначала в каталог,
Установка из исходников
К этому способу лучше прибегать только в том случае, если нет других вариантов. Он заключается в компилировании (сборке) программы из исходных кодов.
В целом, компиляция в общем виде представляет выполнение команд ./configure, make и sudo make install и достойна отдельной статьи, в которой мы скомпилируем для примера какую-нибудь программу.
Как видим, все методы установки за исключением последнего не представляют особой сложности. В данной статье не был затронут такой совсем уж простой способ установки, как установка через Менеджер программ, в котором вся установка сводится к нажатию одной кнопки.
Одна из самых сложных задач, возникающих в процессе установки Unix-программ — отслеживание зависимостей.
Любая более-менее сложная программа в своей работе использует возможности, предоставляемые другими модулями, системными библиотеками и т.д. Таким образом, появляется зависимость — если мы хотим установить программу «А», которая при работе использует библиотеки программы «Б», сначала необходимо установить программу «Б» (у которой, в свою очередь, могут быть свои зависимости). Таким образом, чем больше программ и зависимостей появляется на сервере, тем сложнее их отслеживать и управлять ими. Хорошая новость в том, что это можно делать с помощью пакетного менеджера APT (Advanced Packaging Tool).
Установка с помощью пакетного менеджера
Эволюция методов установки и управления программными пакетами со временем дошла до использования пакетных менеджеров, плотно интегрированных с репозиториями. В репозиториях содержатся упакованные файлы программ с данными об их зависимостях. После установки к операционной системе уже подключены системные репозитории: с их помощью можно обновлять ОС и устанавливать программные пакеты, которые были адаптированы и оптимизированы для работы с этой версией операционной системы.
Перед началом установки пакетов рекомендуется обновить данные о версиях и зависимостях в репозитории следующей командой:
sudo apt-get update
Если необходимо уточнить название пакета, который требуется установить — ищем в локальном кэше менеджер по ключевым словам, например, web server:
sudo apt-cache search web server
В результате получим большой перечень пакетов, где данное ключевое слово присутствует в описании:
Выбираем нужный нам пакет — в данном случае это apache2, и устанавливаем его:
sudo apt-get install apache2
Пакетный менеджер проверяет зависимости, версии, сравнивает их с уже установленными через apt-get пакетами, после чего выдает список необходимых для установки компонентов и запрашивает разрешение на продолжение операции:
Нажимаем y и дожидаемся окончания установки.
Часто используемые команды пакетного менеджера:
- apt-get update — обновление информации о пакетах и зависимостях в подключенных репозиториях;
- apt-get upgrade — обновление всех установленных пакетов до актуальной версии, имеющейся в репозитории;
- apt-get install имя_пакета — установка пакета;
- apt-get remove имя_пакета — удаление пакета;
- apt-get download имя_пакета — скачать deb-пакет в локальную папку;
- apt-cache search ключевые слова — поиск пакета по ключевым словам;
- apt-cache show имя_пакета — показать информацию о пакете;
- apt-cache depends имя_пакета — показать от каких компонентов зависит данный пакет;
- apt-cache rdepends имя_пакета — показать какие компоненты зависят от пакета;
- apt-mark hold имя_пакета — зафиксировать текущую версию пакета, прекратить обновление пакета;
- apt-mark unhold имя_пакета — разрешить обновление пакета.
Установка через Debian package
Программные пакеты могут распространяться и не через репозитории. Например, они могут быть доступны на сайтах разработчиков. В таком случае, пакет можно скачать и воспользоваться утилитой dpkg (debian package) для установки. При использовании dpkg не происходит автоматическое отслеживание зависимостей и скачивание дополнительных пакетов. В случае нехватки каких-либо программ или библиотек установка завершится ошибкой с указанием списка отсутствующих пакетов. Их придется установить отдельно, например, через apt-get, если они присутствуют в подключенных репозиториях, либо скачивать с сайтов разработчиков и устанавливать в нужном порядке через dpkg.
Для примера скачаем из системного репозитория установочный пакет веб-сервера Nginx командой:
sudo apt-get download nginx
и попробуем установить через dpkg –i имя_файла.deb:
sudo dpkg –i ./nginx_1.14.0-0ubuntu1.6_all.deb
В результате система выдает ошибку с перечнем отсутствующих пакетов:
Рассказываем о том, как пользоваться менеджерами пакетов, что такое исходный код, зачем нужны скрипты .sh. В общем, говорим о великом разнообразии вариантов установки дополнительного программного обеспечения в различные дистрибутивы Linux.
Установка программ «классическим» методом
Вряд ли Linux — ваша первая операционная система. Скорее всего, вы уже пользовались Windows или macOS и устанавливали приложения там. В этих системах процесс загрузки и установки сторонних программ построен следующим образом:
- Открываем официальный сайт разработчика приложения.
- Ищем там ссылку на установочный файл и кликаем по ней.
- Затем запускаем загруженный установщик двойным кликом.
Простой алгоритм, который не всегда, но все же работает и в Linux. Так как большое количество программного обеспечения разрабатывается сразу для нескольких операционных систем, то на сайтах разработчиков имеются ссылки на установочные файлы сразу для Windows, macOS и нескольких вариантов Linux.
Более того, некоторые сайты сами определяют тип системы и предлагают подходящий файл для загрузки.
Собственно, в этом случае никаких сложностей возникнуть не должно:
С большой долей вероятности вы скачаете файл в специально запакованном архиве, который подходит только для вашей системы и который можно будет установить обычным двойным кликом. В противном случае придется вручную переархивировать программу либо найти другой способ ее установить.
Здесь отдельно стоит упомянуть дистрибутив openSUSE и их менеджер пакетов YasT, часть функциональности которого встраивают в веб-страницы для быстрой загрузки и установки пакетов в систему. Грубо говоря, это специальная страница, выступающая в роли установщика и не требующая загрузки отдельных файлов.
Загрузка и установка приложений через встроенные магазины ПО
В мире Linux есть системы, которые больше остальных почитают «обычного пользователя», не очень хорошо разбирающегося в компьютерах. Речь об Ubuntu (ну, и о ее производных). В этом дистрибутиве используются некоторые дизайнерские, функциональные и интерфейсные решения из операционной системы Apple Mac OS X. Одно из таких решений — использование собственного независимого магазина приложений, в котором люди смогут искать нужное программное обеспечение и устанавливать его в один клик без лишних хлопот.
Сейчас такие магазины есть во многих дистрибутивах. Их можно встретить его в Fedora, Ubuntu, openSUSE. В Elementary OS вовсе появился репозиторий с эксклюзивным платным программным обеспечением. Его пополняют разработчики-энтузиасты, ищущие поддержки среди пользователей Open Source продуктов. Принцип их работы прост. В них содержится пакет с файлами приложения, упакованный в правильном формате. Система умеет их распаковывать и превращать в рабочее приложения, проводя всевозможные дополнительные операции вроде создания ярлыка на рабочем столе и так далее.
Чтобы скачать приложений из такого магазина:
- Открываем магазин приложений (он так и называется зачастую).
- Вводим в поисковое поле название программы, которую надо установить.
- Ищем ее в результатах поиска и кликаем по кнопке «Установить».
Устанавливаем программы, используя менеджер пакетов
На самом деле, загрузка и установка программ для Linux с официального сайта (то, что мы разбирали в начале статьи) это тоже работа с менеджером пакетов. Только опосредованная. Мы взаимодействуем с пакетом будто напрямую, игнорируя инструменты, которые вступают в работу при попытке установить приложение. Но за установку, обновление и удаление любого «софта» в Linux отвечают менеджеры пакетов (почти всегда).
Менеджер пакетов — это набор инструментов, способных распознать архив в подходящем формате и правильно расфасовать его содержимое по нужным директориям, чтобы в итоге получилась рабочая программа. Такие инструменты есть в любой системе (речь не только про Linux) и все они работают примерно схожим образом со стороны пользователя.
Самые популярные форматы пакетов в Linux: DEB и RPM. Первый создавался для Debian и его производных, а второй для Red Hat Linux и его производных. Оба управляются специальными пакетными менеджерами. Их намного больше, чем самих форматов. Есть Advanced Packaging Tool для тех, кто использует Ubuntu, есть Yellowdog Updater для пользователей CentOS. А еще dnf, Pacman, Zypper и куча других. Они выполняют одни и те же функции, но не взаимозаменяемы, поэтому придется переучиваться под каждый дистрибутив.
Далее более подробно поговорим о менеджерах пакетов и процессе установки приложений через каждый из них.
Через графическую оболочку
Если вы установили себе Fedora или Ubuntu, то у вас в руках есть графическая оболочка для менеджера пакетов. Ее можно использовать для знакомства с программами и выполнения всех базовых операций вроде установки, обновления и удаления. Никакой нужды в ней, на самом деле, нет. Но, во-первых, она все-таки упрощает установку очень большого количества пакетов. Во-вторых, она значительно упрощает их поиск и анализ. В-третьих, она подходит новичкам, которые еще не очень хорошо знакомы с терминалом и командной строкой.
Расскажу о работе с подобной графической оболочкой на примере Synaptic в Linux Mint.
- Для начала открываем сам менеджер пакетов Synaptic. Его можно найти, открыв список доступных приложений и введя в поиск слово Synaptic.
- Затем ищем пакет, который нужно установить (можно воспользоваться поиском).
- Ставим галочку напротив его названия.
- После этого нажимаем на кнопку «Применить» в верхней панели управления Synaptic.
Система запустит процесс обновления доступных пакетов и найдет те, которые нужно установить, и загрузит их на компьютер. С помощью Synaptic можно запустить процедуру глобального обновления всех элементов дистрибутива. При этом необходимо будет ввести пароль администратора. Все процедуры требуют прав суперпользователя.
Также через Synaptic можно добавить в систему репозитории с пакетами. Это списки доступных приложений, которые можно скачать в систему, используя встроенный менеджер пакетов.
Через терминал
Так уж сложилось, что пользователи Linux не очень жалуют графический интерфейс. Да и сторонние разработчики не особо стараются делать установщики, которые легко запускаются из графической оболочки. Здесь принято пользоваться командной строкой. С помощью текстовых команд зачастую гораздо проще установить какую-либо программу, чем лезть за ней в магазин приложений или того хуже — на официальный сайт.
Итак, для установки «софта» через терминал нужно:
- Открыть терминал. Это можно сделать, одновременно нажав клавиши Ctrl + Alt + T на пустом рабочем столе.
- Ввести специальную команду для установки программы.
- Вписать пароль администратора для подтверждения загрузки.
- Подтвердить свои действия нажатием на клавишу Y или «Ввод», если потребуется.
Команды для установки ПО в Linux строятся следующим образом: sudo название менеджера пакетов install название программы
- Здесь sudo — это выдача прав суперпользователя на выполняемую операцию. Это как запуск от имени администратора в Windows. Без привилегий установить программу в Linux нельзя.
- название менеджера пакетов — это, скорее всего, уникальная для вашего дистрибутива аббревиатура, которая управляет процессами установки, удаления и обновления приложений.
- install сообщает менеджеру пакетов, что нужно именно установить ПО, а не обновить или удалить.
- название программы — ну и имя самого приложения, конечно. Иногда его нужно сопровождать номером версии. Иногда достаточно одного названия. Например install firefox установит самую новую итерацию браузера из доступных.
Далее разберем установку программ в разных дистрибутивах более подробно и с примерами.
В Ubuntu (Debian, Mint, Elementary OS)
Ubuntu, Mint и Elementary OS как раз те дистрибутивы Linux, на которые люди уходят из Windows. Это наиболее дружелюбные операционные системы, которые идут на встречу неопытным пользователям и всячески пытаются подражать Windows и macOS, чтобы сразу же не отпугнуть новичков.
Поэтому здесь и приложения чаще устанавливают, скачивая их с официального сайта или используя встроенный магазин приложений (который, кстати, довольно крутой). Но с командной строкой здесь работать тоже можно, и все пользователи Linux к этому в итоге приходят. Установить новое ПО в Ubuntu можно с помощью одной из трех программ.
Или Advanced Package Tool. Это утилита, специально разработанная для распаковки пакетов в формате .deb, которые, в свою очередь, используются в операционной системе Debian и ее дериватах. Работает она точно так же, как и любой другой менеджер пакетов. Отзывается на те же команды. Для установки какого-нибудь приложения надо ввести в терминал что-то в духе sudo apt-get install firefox . Естественно, Firefox можно заменить на любой другой доступный для установки программный продукт .
С недавних пор в Ubuntu и некоторых других современных дистрибутивах появился инструмент под названием snap. Это программа для установки сторонних лицензированных приложений. В частности, коммерческих. Дело в том, что в репозитории с ПО (откуда обычно скачиваются пакеты с помощью apt) намеренно не добавляют проприетарный «софт». Там лежат только программы с открытым исходным кодом. Это, конечно, усложняло их установку до определенного момента. То есть до появления snap. В его базе приложений есть все полезные коммерческие продукты типа Skype, Opera и проч. Работает так: snap install skype . Даже __sudo__вводить не нужно. snap сам затребует пароль через графическую оболочку.
Вся сила Linux в использовании терминала. Это такая командная оболочка, где вы можете выполнять различные команды, которые будут быстро и эффективно выполнять различные действия. Ну впрочем, вы наверное это уже знаете. Для Linux было создано множество скриптов, которые выполняются в различных командных оболочках. Это очень удобно, вы просто объединяете несколько команд, которые выполняют определенное действие, а затем выполняете их одной командой или даже с помощью ярлыка.
Но у новичков может возникнуть вопрос - как запустить скрипт в Linux, что для этого нужно сделать, что будет происходить и какие команды нужно выполнить. Но сначала нужно рассмотреть как работают скрипты и что такое исполняемость.
Как работают скрипты
В Linux почти не используется расширение файла для опережения его типа на системном уровне. Это могут делать файловые менеджеры и то не всегда. Вместо этого, используются сигнатуры начала файла и специальные флаги. Система считает исполняемыми только те файлы, которым присвоен атрибут исполняемости.
Теперь о том, как работают скрипты. Это обычные файлы, которые содержат текст. Но если для них установлен атрибут исполняемости, то для их открытия используется специальная программа - интерпретатор, например, оболочка bash. А уже интерпретатор читает последовательно строку за строкой и выполняет все команды, которые содержатся в файле. У нас есть несколько способов выполнить запуск скрипта linux. Мы можем запустить его как любую другую программу через терминал или же запустить оболочку и сообщить ей какой файл нужно выполнять. В этом случае не нужно даже флага исполняемости.
Запуск скрипта sh в Linux
Сначала рассмотрим пример небольшого sh скрипта:
Вторая строка - это действие, которое выполняет скрипт, но нас больше всего интересует первая - это оболочка, с помощью которого его нужно выполнить. Это может быть не только /bin/bash, но и /bin/sh, и даже /usr/bin/python или /usr/bin/php. Также часто встречается ситуация, что путь к исполняемому файлу оболочки получают с помощью утилиты env: /usr/bin/env php и так далее. Чтобы выполнить скрипт в указанной оболочке, нужно установить для него флаг исполняемости:
chmod ugo+x script.sh
Мы разрешаем выполнять запуск sh linux всем категориям пользователей - владельцу, группе файла и остальным. Следующий важный момент - это то место где находится скрипт, если вы просто наберете script.sh, то поиск будет выполнен только глобально, в каталогах, которые записаны в переменную PATH и даже если вы находитесь сейчас в той папке где находится скрипт, то он не будет найден. К нему нужно указывать полный путь, например, для той же текущей папки. Запуск скрипта sh в linux:
Или полный путь от корня:
Если вы не хотите писать полный путь к скрипту, это можно сделать, достаточно переместить скрипт в одну из папок, которые указаны в переменной PATH. Одна из них, которая предназначена для ручной установки программ - /usr/local/bin.
cp script.sh /usr/local/bin/script.sh
Теперь вы можете выполнить:
Это был первый способ вызвать скрипт, но есть еще один - мы можем запустить оболочку и сразу же передать ей скрипт, который нужно выполнить. Вы могли редко видеть такой способ с bash, но он довольно часто используется для скриптов php или python. Запустим так наш скрипт:
А если нам нужно запустить скрипт на php, то выполните:
Вот так все просто здесь работает. Так можно запустить скрипт как фоновый процесс, используйте символ &:
Даже запустить процесс linux не так сложно.
Выводы
Как видите, запуск скрипта sh в linux - это довольно простая задача, даже если вы еще плохо знакомы с терминалом. Существует действительно много скриптов и некоторые из них вам возможно придется выполнять. Если у вас остались вопросы, спрашивайте в комментариях!
Читайте также: