Ранее мы уже говорили про установку пакетов в дистрибутивах Linux при помощи терминала. В этих же статьях неоднократно упоминалось про то, что чаще всего установочные файлы в Linux представлены либо DEB, либо RPM-пакетами, для установки которых используются пакетные менеджеры apt или dnf.
Установка Linux-программ через терминал
Особняком от этой классической «пары» стоит дистрибутив Archlinux. Программы в нем устанавливаются из архивов, но при этом сборка исходников происходит без участия пользователя. Всю работу выполняет менеджер пакетов Pacman, про который и пойдет сегодня речь.
Установочные пакеты в Archlinux
Пакетный менеджер Pacman работает с пакетами, которые распространяются в виде архива. В статье про установочные форматы файлов в Linux говорилось, что такой формат является одним из первых появившихся, помимо упомянутых выше DEB и RPM-пакетов.
Форматы установочных файлов в Linux
Внутри такого установочного архив находятся скомпилированные файлы приложения, метаданные о нем (например, имя, версия, зависимости и т. д.), установочные файлы и директивы для пакетного менеджера, и, по желанию разработчика, могут быть дополнительные файлы, которые упрощают жизнь пользователя (например, сценарии запуска или остановки).
Преимущества Pacman перед ручной сборкой программы
Опять-таки ранее мы учились устанавливать программы их архивов. Но тогда вручную нужно было архив распаковать, скомпилировать и собрать исходники. Pacman делает тоже самое, только оперирует уже скомпилированными файлами, которые собирает в пакет без прямого участия пользователя.
Установка программ Linux из исходников
Если в результате компиляции или сборки пакет не обнаружит какой-либо зависимости, то выдаст ошибку и установка будет прервана. Pacman «подтягивает» необходимые зависимости из интернета и не требует от пользователя их ручной установки.
Кроме того, чтобы обновить программу, собранную из исходников, нужно удалить старую версию программу и установить новую (т. е. повторить процесс распаковки, компиляции и сборки). Pacman же следит за появлением новых обновлений и производит все процедуры самостоятельно.
Если вы захотите удалить пакет через Pacman, то он сделает это «чисто», то есть, не оставит в системе мусора в виде зависимостей и уже ненужных пакетов.
Основные команды Pacman для работы с пакетами
Пока что мы познакомимся только с основными командами, которые рядовой пользователь Archlinux использует практически постоянно.
- sudo pacman -S <имя_пакета> - установка пакета.
- sudo pacman -R <имя_пакета> - удаление пакета с сохранением зависимостей.
- sudo pacman -Rs <имя_пакета> - удаление пакета вместе с ненужными зависимостями.
- sudo pacman -Rn <имя_пакета> - по-умолчанию Pacman хранит копии конфигурационных файлов удаляемых пакетов, данная команда удаляет пакет вместе с этими копиями.
- sudo pacman -Syu - обновление всей системы, при этом стоит помнить, что если система не обновлялась достаточно давно, то процесс может занять значительное время (среди арчеводов, вроде, ходят шутки про боязнь обновления системы после нескольких лет не обновляемого ее использования).
- sudo pacman -Ss <имя пакета> - осуществляет поиск пакета и выводит результаты по имеющимся репозиториям, показывает есть ли указанный пакет среди установленных.
Перечисленные пять команд являются основными, но не единственными. Кроме того, есть ряд команд, связанных с удалением, которые при неосторожном обращении могут повредить системе, поэтому в рамках знакомства про них ничего не сказано. Также хочу напомнить, что дистрибутив Archlinux нельзя назвать рекомендуемым для новичков в мире Linux, так как работа с ним требует некоторого опыта и знаний. Тем не менее, думаю, что материал статьи окажется полезным тем, кто планирует переход на Archlinux или сделал это недавно. Про преимущества этого дистрибутива я рассказывал в отдельной статье.
Пять причин влюбиться в Archlinux
Также знаю, что среди подписчиков есть арчеводы. Думаю, что в комментариях они либо дополнят этот пост, либо внесут какие-либо коррективы, либо поделятся тем, что можно рассказать про Pacman в рамках следующих статей.