Linux. Установка и запуск программ
Время чтения: 5 минут
Если ты ознакомился с предыдущей статьёй, то ты уже умеешь перемещаться по разным папкам и создавать/редактировать/удалять файлы.
Однако, этого недостаточно для полноценной работы – кроме работы с файлами мы обычно запускаем всякие программы: браузер, офисные приложения, игры и тому подобное.
Так как же на Linux ставить новые программы?
“Магазин” приложений
Так как Ubuntu Linux является одним из самых дружественных к пользователю дистрибутивов (версий сборки Linux), в него уже встроен графический “магазин” приложений.
Я пишу “магазин” в кавычках, потому что в нём нельзя ничего купить – все приложения в нём бесплатные, как и сам Linux.
Чтобы открыть его, найди “Центр приложений” (или “Software Center” если у вас английский) в меню приложений (нужно нажать на кнопку в левом нижнем углу):
Если у тебя не Ubuntu, то иконка “магазина” приложений выглядет иначе или вообще отсутствует – можешь написать мне, если с этим есть проблемы.
Если его открыть, то ты можешь увидеть вполне удобный интерфейс, через который ты без проблем сможешь поставить почти любое приложение доступное для Linux:
Круто? Не говори что не круто, я не поверю!
По сравнению с Windows, где обычно приходится лезть на разные сайты, скачивать там установщик, прокликивать бесконечные окна (возможно с галочками вроде “Установить браузер Amigo?”), установка приложений на Linux выглядит намного удобнее! Она настолько удобна, что Windows пытаются повторить это у себя через Microsoft Store, но пока не очень успешно.
Окей, с установкой приложений на уровне пользователя разобрались – а есть какие-то преимущества для разработчика?
Менеджер пакетов
Менеджер пакетов (англ. Package Manager) – программа, которая занимается загрузкой и установкой других программ и их зависимостей.
“Магазин” приложений, который я рассмотрел в прошлом разделе, это всего лишь графическая оболочка надо менеджером пакетов – вся магия происходит в нём.
Пакеты
Прежде чем я занырну в менеджер пакетов, стоит сказать что такое пакет.
Пакет – это архив, который содержит бинарные файлы (исполняемые файлы, библиотеки), ресурсы (картинки, конфигурационные файлы) и информацию о самом пакете.
Так повелось, что Linux это не одна операционная система, как Windows, а целое семейство дистрибутивов – различных сборок операционной системы Linux.
Дальше может быть страшно, но ты не пугайся – я навалил всю эту инфу про пакеты, пакетные менеджеры и дистрибутивы просто для того, чтобы ты увидел общую картину, не более.
В зависимости от дистрибутива, система может кушать только определённый формат пакетов (источник):
deb
(Debian) формат используется дистрибутивами: Ubuntu, Linux Mint, Elemental OS и прочиеrpm
(Red Hat Package Manager) формат используется дистрибутивами: Red Hat Linux, Arch, openSUSE и прочие
Для работы с каждым из форматов существует множество пакетных менеджеров (источник):
- Для
deb
пакетов:dpkg
– очень простой, используется только для установки пакетовapt
– Advanced Package Tool. Обёртка надdpkg
, которая может скачивать пакеты и разрешать зависимости между нимиapt-get
,apt-cache
– старые версии вызоваapt
aptitude
– обёртка надapt
, которая ещё больше облегчает работу с пакетами
- Для
rpm
пакетов:rpm
– аналогиченdpkg
yum
– аналогиченrpm
dnf
– аналогиченyum
pacman
– самостоятельный пакетный менеджер, используемый на Arch дистрибутивах
Да, дистрибутивов очень много, но это нормально – так как Linux это программное обеспечение с открытым кодом, очень многие хотят внести свой вклад в развитие этой экосистемы.
Разные дистрибутивы обладают своими достоинствами и недостатками – каждый выбирает что ему больше по душе. Вот тебе визуализация эволюции дистрибутивов, чтобы проникнуться масштабом многообразия:
Итак, вернёмся к работе с менеджером пакетов – я предположу что у тебя стоит Ubuntu дистрибутив Linux, поэтому буду рассматривать работу с пакетным менеджером apt
.
Если у тебя стоит другой пакетный менеджер, то это не страшно – увидев как я работаю с
apt
, ты поймёшь общий принцип, а это самое важное, потому что все менеджеры пакетов почти идентичны в плане работы с ними.
Обычно все взаимодействуют с менеджером пакетов не через графическую оболочку, а через консоль. Но почему? Да потому что это намного удобнее!
Установка программы
Например, тебе надо поставить “Telegram” – это делается в одну команду:
kee-reel@blog:~$ sudo apt install telegram-desktop
Давай разберём это заклинание по словам:
sudo
– программа, которая позволяет переключиться в режим администратора, чтобы выполнить какую-нибудь важную команду (которая пишется сразу после).
-
apt
– это и есть наш пакетный менеджер. -
install
– один из режимов работыapt
(про другие режимы позже). Используется для установки новых пакетов. -
telegram-desktop
– название пакета, который надо установить. Я загуглил “ubuntu telegram”, чтобы узнать что нужно именно такое название (обычно это в первых ссылках).
После исполнения этой команды, тебя попросят ввести пароль администратора – это отрабатывает программа sudo
. Затем, уже apt
попросит подтвердить что ты действительно хочешь установить этот пакет – просто соглашайся, введя “Y”.
Запуск программы
После этого можно запускать установленный Telegram:
kee-reel@blog:~$ telegram-desktop
Иногда название пакета может отличается от названия программы. Если с этим возникают проблемы, то не стесняйся спрашивать у интернета, он всегда подскажет :)
Запуск в фоне
Пока Telegram запущен, ты можешь заметить, что консоль заблокирована и ты не можешь ничего вводить. Чтобы такого не было, ты можешь:
-
запустить Telegram через меню приложений в графическом интерфейсе, нажав на соответствующую иконку
-
запустить Telegram через командную строку, но добавить в конце символ имперсант “&”:
kee-reel@blog:~$ telegram-desktop &
Таким образом, ты сообщаешь операционной системе, что хочешь запустить эту программу в фоне, отдельно от текущей сессии терминала.
Убрать надоедливые сообщения
После запуска в терминал могут посыпаться странные сообщения – это сообщения отладки (логи), которые пишет запущенная программа. Если тебя это бесит, то можно запустить вот так:
kee-reel@blog:~$ telegram-desktop 2>/dev/null
Разберу заклинание:
2>
– перенаправляет поток ошибок (stderr) в…/dev/null
– …пустое устройство (dev - device). Это виртуальное устройство, которое полностью поглощает любой ввод и ничего с ним не делает.
Теперь ты можешь посылать плохих людей не на ***, а в
/dev/null
– они даже не поймут что произошло
С перенаправлением ввода можно делать много прикольных штук (писать вывод программы в файл, в сокет по сети), но об этом я напишу как-нибудь потом.
Обновление программ
Периодически для установленных программ выходят обновления – чтобы их установить надо выполнить две команды.
Запросить список обновлений из всех удалённых репозиториев:
kee-reel@blog:~$ sudo apt update
Накатить все доступные обновления:
kee-reel@blog:~$ sudo apt upgrade
Удаление программы
Чтобы удалить программу надо выполнить эту команду:
kee-reel@blog:~$ sudo apt remove telegram-desktop
Запускаем apt
из под sudo
в режиме удаления пакетов remove
, и удаляем указанный пакет telegram-desktop
– зеркальный ответ команде установки.
Надеюсь у меня получилось доступно показать как работать с менеджером пакетов, и ты теперь сможешь (даже если и с помощью гугла) установить любой пакет на свою систему!
Если что – пиши, я помогу и постараюсь объяснить лучше.