Альманах пакетных менеджеров Linux
Иногда может возникнуть вопрос: чьих этот файл, откуда вообще взялась эта библиотека? Удобный менеджер пакетов решает очень многие проблемы ОС. Можно с уверенностью сказать, что если вы подружитесь с МП, то подружитесь и с дистрибутивом как таковым. Причем важно освоить именно набор основных команд, и знать где найти дополнительную информацию.
Далее следует джентльменский набор необходимых для повседневной рутины команд основных Linux дистрибутивов: установить, обновить и удалить пакет, накатить обновления, проверить зависимости, установить принадлежность файла пакету и пр.
Debian и родственные
Популярность и образ дружественного к пользователю Linux дистрибутива сыграли с Ubuntu злую шутку. Некоторым новичкам кажется, что можно на нем делать все, что угодно без помощи командной строки. Это заблуждение и лучше от него поскорее избавиться.
То, что в примерах aptitude
не значит, что он правильнее, чем apt-get
. Для меня это всего лишь дело привычки.
$ aptitude install package #установить пакет;
$ aptitude safe-upgrade package #обновить пакет;
$ aptitude update #проверить и установить обновления;
$ aptitude remove package #удалить пакет;
$ aptitude purge package #удалить пакета с концами, все данные и настройки;
$ apt-get dist-upgrade #обновить ОС, killer-feature и оно работает!
$ aptitude search package #искать пакет.
$ apt-cache depends package #зависимости пакета;
$ apt-cache rdepends package #обратные зависимости от пакета.
Некоторые функции доступны с дополнительным МП dpkg
.
$ dpkg -l #список установленных программ;
$ dpkg -L package #список файлов пакета
Есть еще такое чудо — wajig. Несмотря на странное звучание, вполне годный МП с человеко-читабельным выводом информации на экран.
Настройка репозиториев производится правкой файла /etc/apt/sources.list
$ wajig install package
$ wajig distupgrade #обновить ОС;
$ wajig install --fileinput filename #установить пакеты списком;
$ wajig listinstalled
В целом ПМ Debian один из лучших, с которыми мне доводилось иметь дело.
Redhat и другие RPM дистрибутивы
RPM нельзя назвать образцовым пакетным менеджером, скорее это был кактус, который мыши употребляли в пишу со слезами на глазах. Затем появились более или менее вменяемые МП: yum
, dnf
, zypper
и другие. Только что на сервере RHEL 7.4 yum
за раз обновил более 700 пакетов и ничего при этом не сломал, неплохой результат я считаю.
$ yum install package
$ yum update package
$ yum update
$ yum remove package
$ yum deplist package #зависимости пакета;
$ dnf repoquery --deplist #то же самое, для Fedora
$ yum whatprovides package #установить принадлежность файла какому-либо пакету;
$ yum list all #список всех установленных программ
Команды rpm
на те случаи, когда использовать yum
не с руки.
$ rpm -i package #установить пакет;
$ rpm -e packate #удалить пакет;
$ rpm -qa #список установленных пакетов;
$ rpm -qi package #вывод информации об установленном пакете;
$ rpm -q --whatrequires package #обратные зависимости от пакета.
Чтобы настроить репозитории Yum
, откройте файл /etc/yum.repos.d/*.repo
, или используйте команду yum-config-manager
.
Zypper
На SuSE Linux используется Zypper / YaST
для управления пакетами, движок ZYpp крутится роверх RPM.
$ zypper in mc #установить пакет, если его нет, а противном случае - обновить его;
$ zypper up nginx openssh #обновить программу;
$ zypper se gnome-desktop #найти программу;
$ zypper remove package;
$ zypper se --provides --match-exact hg #установить принадлежность файла какому-либо пакету;
$ zypper se --requires package #обратные зависимости от пакета.
Можно использовать операторы и регулярные выражения.
zypper in 'gcc.i586<5.1'#установить пакет для архитектуры i586, версии младше 5.1;
zypper in php5*;
Управление репозиториями производится командой zypper mr
.
$ zypper lr #список реп, укаханы номера репозиториев;
$ zypper mr -d 5 #выключить 5-у репу;
$ zypper mr -e 5 #включить 5-у репу.
Pacman
Этот МП используется в Арче и Manjaro.
$ pacman -S package #установить пакет;
$ pacman -R package #удалить пакет;
$ pacman -Su package #обновить пакет;
$ pacman -Q1 package #список файлов пакета;
$ pacman -Qo filename #установить принадлежность файла какому-либо пакету;
$ whoneeds package #обратные зависимости от пакета;
$ pacman -Qdt #список пакетов-сирот, без обратных зависимостей.
Движок поиска в базе данных поддерживает регулярные выражения.
$ pacman -Ss package #простой полнотекстовый поиск;
$ pacman -Ss '^vim-' #поиск с регулярными выражениями;
$ pacman -Qs package #поиск среди установленных пакетов;
Настройка репозиториев и зеркал производится из файла /etc/pacman.conf
Gentoo emerge
Конечно же это скорее умозрительный сценарий, чем реальный, так как сложно предположить, что красноглазый пользователь Gentoo Linux не знает необходимых опций emerge
. Тем не менее, без этого альманах был бы неполным.
$ emerge package #установить пакет;
$ emerge -av package # интерактивный режим установки пакета;
$ emerge -pv package # показать сценарий установки пакета;
$ emerge -u packave # обновить пакет;
$ emerge -C package # удалить пакет;
$ emerge -auDv world # обновить все программы с учетом зависимостей;
$ emerge -auDNv word # обновить все программы с учетом зависимостей и новых USE опций.
С дополнительными утилитами можно получить больше информации о файлах, ненужных пакетах и т. д.
$ revdep-rebuild #проверить и восстановить неудовлетворенные зависимости;
$ eix package #искать пакет;
$ equery belongs package #установить принадлежность файла какому-либо пакету;
$ equery depends package #обратные зависимости от пакета;
$ equery uses package #USE флаги пакета;
$ qlop -l #история операций emerge;
Репозитории, зеркала и все самое важное для emerge / portage
содержится в /etc/make.conf
.
Материалы по теме
- How To List All Installed Packages In Linux
- Package Management Basics: apt, yum, dnf, pkg
- 45 Zypper Commands to Manage SUSE Linux Package Management
- ArchWiki — pacman