← На главную

Памятка по управлению пакетами в CentOS, Fedora и RHEL

Вот некоторые «специалисты» авторитетно заявляют, что самая большая проблема в Linux – это большое количество дистрибутивов, которые прям так сильно отличаются пакетными менеджерами, путями до конфигов и прочим. На самом деле, в 99% случаев используется либо что-то на базе Debian, либо на базе RedHat. Всякие Arch и Gentoo, конечно, тоже существуют, но в основном они существуют на десктопах энтузиастов, а не в продакшене. И сегодня мы с вами убедимся, что отличий CentOS от Debian, с которым мы уже неплохо знакомы, не так уж много. По крайней мере, в вопросах, касающихся управления пакетами.

В RHEL, CentOS и Fedora используется менеджер пакетов Yum. Yum имеет ряд инетересных отличий от Apt, используемого в Debian и Ubuntu. Например, есть поддержка плагинов и групп пакетов. Кроме того, можно делать undo/redo изменений с пакетами. Мне лично интерфейс Yum кажется намного более продуманным. Все действия выполняются при помощи утилиты yum, а не так, что часть через apt-get, часть через apt-cache и еще часть через dpkg. Из-за этого часто бывает трудно вспомнить, man по какой команде хочется сейчас открыть, через что делается upgrade, а через что madison, и так далее.

Далее предполагается, что все команды выполняются под пользователем root. Если вы сидете под обычным пользователем, перед некоторыми командами может потребоваться написать sudo. Обычно и так понятно, перед какими. Например, для получения информации о пакетах права рута не нужны. Для установки, обновления и удаления пакетов – нужны.

Итак, начнем. Для начала, часто имеет смысл подключить EPEL:

$ yum install epel-release

Установка пакетов производится так:

$ yum install gcc

Получение информации о пакете:

$ yum info git

Получение списка зависимостей пакета:

$ yum deplist git

Проверка наличия доступных обновлений:

$ yum check-update

Обновление всех установленных пакетов:

$ yum update

Обновление конкрутного пакета:

$ yum update yum

Откатываем пакет к предыдущей версии:

$ yum downgrade git

Переустанавливаем пакет:

$ yum reinstall git

Удаление пакета:

$ yum remove git

Список всех доступных пакетов:

$ yum list available | less

Спискок всех установленных пакетов:

$ yum list installed | less

Спискок вообще всех пакетов:

$ yum list all | less

Проверить, установлен ли пакет:

$ yum list mutt $ yum list mysql*

Поиск по пакетам:

$ yum search mutt

История установки/обновления/удаления пакетов:

$ yum history

Посмотреть детали о записи в истории:

$ yum history info 42

Откатить изменение из истории (вы же за это любите NixOS?):

$ yum history undo 42

Повторить изменения из истории:

$ yum history redo 42

Определение, к какому пакету относится файл:

$ yum provides /usr/bin/pstree

А так можно посмотреть все файлы, которые входят в конкретный пакет:

$ yum install yum-utils $ repoquery -l psmisc

Также в пакет yum-utils входит команда для установки отладочных символов, необходимых, если вы иногда запускаете gdb:

$ debuginfo-install glibc

Часто нужной debuginfo нет в обычных репозиториях, но ее можно найти на filewatcher.com. Например, если ищем отладочные символы для:

nspr-4.10.6-1.el6_6.x86_64

... то вводим в поиске:

nspr-debuginfo-4.10.6-1.el6_6.x86_64

Список репозиториев:

$ yum repolist

Список групп пакетов:

$ yum grouplist

Получение информации о группе:

$ yum groupinfo "Web Server"

Установка группы пакетов:

$ yum groupinstall "Web Server"

Удаление группы пакетов:

$ yum groupremove "Web Server"

Установка скаченного RPM-файла:

$ yum install path/to/some.rpm

... или:

$ rmp -i path/to/some.rpm

Много разных RPM можно найти на сайте rpmfind.net.

По большому счету, это все, что нужно знать об управлении пакетами в Linux'ах, использующих Yum. Больше информации, как обычно, в манах.

Возвращаясь к вопросу про большое количество «таких разных» дистрибутовов Linux, хотелось бы сказать следующее. Как-то раз мне потребовалось быстро разобраться во всем написанном выше. На тот момент у меня было много опыта использования Debian и Ubuntu, и никакого опыта использования CentOS. Так вот, чтобы во всем разобраться, мне потребовалось минут 15, и проблем с тех пор не возникало. В самом деле, какая разница – yum install или apt-get install?

А какой пакетный менеджер вы предпочитаете в это время суток?