Вот некоторые «специалисты» авторитетно заявляют, что самая большая проблема в 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 list mysql *
Поиск по пакетам:
История установки/обновления/удаления пакетов:
Посмотреть детали о записи в истории:
Откатить изменение из истории (вы же за это любите NixOS?):
Повторить изменения из истории:
Определение, к какому пакету относится файл:
А так можно посмотреть все файлы, которые входят в конкретный пакет:
repoquery -l psmisc
Также в пакет yum-utils входит команда для установки отладочных символов, необходимых, если вы иногда запускаете gdb :
Часто нужной debuginfo нет в обычных репозиториях, но ее можно найти на filewatcher.com . Например, если ищем отладочные символы для:
… то вводим в поиске:
Список репозиториев:
Список групп пакетов:
Получение информации о группе:
Установка группы пакетов:
Удаление группы пакетов:
Установка скаченного RPM-файла:
… или:
Много разных RPM можно найти на сайте rpmfind.net .
По большому счету, это все, что нужно знать об управлении пакетами в Linux’ах, использующих Yum. Больше информации, как обычно, в манах.
Возвращаясь к вопросу про большое количество «таких разных» дистрибутовов Linux, хотелось бы сказать следующее. Как-то раз мне потребовалось быстро разобраться во всем написанном выше. На тот момент у меня было много опыта использования Debian и Ubuntu, и никакого опыта использования CentOS. Так вот, чтобы во всем разобраться, мне потребовалось минут 15, и проблем с тех пор не возникало. В самом деле, какая разница — yum install
или apt-get install
?
А какой пакетный менеджер вы предпочитаете в это время суток?