В данной статье мы рассмотрим менеджер пакетов Yum, который позволяет управлять установкой, удалением и обновлением пакетов, автоматически разрешать зависимости, управлять дополнительными репозиториями.
Yum (Yellowdog Updater Modified) – консольный менеджер пакетов для дистрибутивов Linux, основанных на пакетах формата RPM (RedHat Package Manager). Сюда входят такие популярные ОС как RedHat, CentOS, Fedora, Oracle Linux, Scientific Linux.

Yum: установка, обновление и удаление пакетов
Полная справка по менеджеру пакетов yum
:
yum help
Очистить кеш всех пакетов (обчычно используется при возникновении проблем при работе yum):
yum clean all
Пересоздать кеш пакетов заново:
yum makecache
Отобразить список подключенных репозиториев:
yum repolist
Вывести список всех доступных пакетов для установки:
yum list available
Список всех пакетов, которые установлены в системе:
yum list installed
Вывести список пакетов, которые относятся к ядру Linux:
yum list kernel
Проверить установлен ли в системе определенный пакет, например, apache:
yum list installed httpd
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.awanti.com * epel: mirror.datacenter.by * extras: mirrors.powernet.com.ru * updates: mirror.axelname.ru Installed Packages httpd.x86_64 2.4.6-93.el7.centos @base
Можно получить более подробную информацию о пакете:
yum info httpd
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.awanti.com * epel: mirrors.glesys.net * extras: mirrors.powernet.com.ru * updates: mirror.axelname.ru Installed Packages Name : httpd Arch : x86_64 Version : 2.4.6 Release : 93.el7.centos Size : 9.4 M Repo : installed From repo : base Summary : Apache HTTP Server URL : http://httpd.apache.org/ License : ASL 2.0 Description : The Apache HTTP Server is a powerful, efficient, and extensible : web server.
Чтобы установить пакет используется команда yum install
. Для установки веб-сервера apache выполните:
yum install httpd
Перед установкой пакета можно проверить его на зависимости и необходимые пакеты с помощью команды:
yum deplist httpd
Если вы хотите установить какой-либо пакет, но забыли его полное название, можно воспользоваться подстановочным символом *
. Например:
yum install epel-*
Можно установить сразу несколько пакетов:
yum install wget htop yum-utils
Переустановка пакета:
yum reinstall proftpd
Удалить установленный пакет:
yum remove httpd
!Но перед удалением любого пакета, рекомендуется сначала проверить его на зависимости (бывают пакеты, удаление которых влечет за собой удаление множества других пакетов, что в следствии приводит к неработоспособности системы):
yum deplist httpd
Найти пакет по имени или описанию:
yum search httpd
С помощью опции provides
вы можете найти пакеты, содержавшие определенный файл, например:
yum provides */squid.conf
Выполнить обновление всех установленных пакетов:
yum update
Вы можете обновить только определенный пакет, указав его имя:
yum update httpd
Проверить если доступные обновления для системы можно командой:
yum check-update
Получить информацию о доступных обновлениях безопасности:
yum updateinfo list security
Бывают случаи, когда после обновления какого-либо пакета или сервиса, возникают проблемы. Например, после обновления php, перестало работать ваше приложение или сайт. Вы можете вернуть предыдущую версию пакета, откатив установленный пакет:
yum downgrade php
Имеется возможность группой установки пакетов командой grouplist
. В репозитории существуют предопределенные группы пакетов с различными наборами программ. Вы можете вывести список имеющихся групп:
yum grouplist
Рассмотрим на примере группового листа «Basic Web Server». Получить информацию о группе и пакетах в ней:
yum groupinfo "Basic Web Server"
При проверке мы видим, что будут установлены набор пакетов и сервисов для веб-сервера.
Ещё один полезный групповой лист «System Administration Tools»:
yum groupinfo "System Administration Tools"
Как видим, в данном листе содержатся пакеты, которые будут полезны для мониторинга и отладки.
Установить групповой лист можно командой:
yum groupinstall "System Administration Tools"
Yum: история и логи установки/удаления пакетов
Вы можете вывести информацию об истории установки пакетов yum (списка транзакций) с помощью команды:
yum history list
Вывод состоит из 5 столбцов, в первом выводится ID транзакции по которому можно посмотреть всю информацию (установленные пакеты, зависимости):
Например:
yum history info 10

Более того, можно отменить данную транзакцию командой:
yum history undo 10
В моем случае удалилось бы 4 пакета:

Так же всю информацию об истории установки/удаления пакетов менеджером yum можно посмотреть в логе /var/log/yum.log
:
cat /var/log/yum.log
Jun 15 05:34:39 Installed: perl-Getopt-Long-2.40-3.el7.noarch Jun 15 05:34:41 Installed: 4:perl-5.16.3-295.el7.x86_64 Jun 15 05:34:41 Installed: 2:vim-filesystem-7.4.629-6.el7.x86_64 Jun 15 05:34:43 Installed: 2:vim-common-7.4.629-6.el7.x86_64 Jun 15 05:34:44 Installed: 2:vim-enhanced-7.4.629-6.el7.x86_64 Jun 15 05:34:44 Installed: 1:mc-4.8.7-11.el7.x86_64 Jun 15 05:34:44 Installed: htop-2.2.0-3.el7.x86_64 Jun 15 05:34:44 Installed: tree-1.6.0-10.el7.x86_64 Jun 15 05:35:04 Installed: net-tools-2.0-0.25.20131004git.el7.x86_64 Jun 15 06:46:19 Installed: apr-1.4.8-5.el7.x86_64 Jun 15 06:46:19 Installed: apr-util-1.5.2-6.el7.x86_64 Jun 15 06:46:19 Installed: httpd-tools-2.4.6-93.el7.centos.x86_64 Jun 15 06:46:19 Installed: mailcap-2.1.41-2.el7.noarch Jun 15 06:46:20 Installed: httpd-2.4.6-93.el7.centos.x86_64
Дополнительные полезные параметры yum
Утилита yum имеет несколько полезных опций, которые часто приходитя использовать при управлении пакетами. Чтобы при установке или удалении пакетов, после ввода команды не подтверждать своих действий, можно воспользоваться опцией -y
, например,:
yum install httpd -y
Чтобы ответить no
при запросе, нужно указать опцию:
--assumeno
Использовать yum без плагинов или отключить конкретный плагин:
--noplugins
--disableplugin=fastestmirror
Включить отключенный плагин:
--enableplugin=fastestmirror
Задействовать отключенный репозиторий:
yum update –enablerepo=atomic
Отключить определенный репозиторий:
yum update –disablerepo=atomic
Конфигурационный файл /etc/yum.conf
Конфигурационный файл yum — /etc/yum.conf
.
Основные параметры конфигурационного файла:
cachedir
– локальный кэш пакетов (по умоланию /var/cache/yum
)
logfile
— путь до файла с логами yum
obsoletes
— обновлять или нет, устаревшие пакеты(1-да, 0-нет)
gpgcheck
— проверка подписи пакета перед установкой (1-да, 0-нет)
keepcache
— хранение кеша (1-да, 0-нет)
cachedir
— директория для хранения кеша(по умолчанию /var/cache/yum
)
debuglevel
– уровень отладки от 1 до 10
plugins
— включение yum плагинов (1-да, 0-нет)
bugtracker_url
– ссылка по которой будут зарегистрированы ошибки работы yum
installonly_limit
– максимальное количество версий, которые могут быть установлены для одного пакета.
Полезные плагины yum
Некоторые популярные плагины и их описание:
yum-plugin-fastestmirror
– плагин служащий для измерения скорости зеркал и предоставления самого быстрого для установки пакетов.
yum-plugin-security
— плагин которые предоставляет список обновлений относящихся только к безопасности системы.
yum-plugin-keys
— позволяет работать с ключами keys, keys-info, keys-data, keys-remove
Директория где хранятся все плагины /etc/yum/
yum-plugin-versionlock
– позволяет блокировать обновление указанных пакетов
Вывести список доступных плагинов yum:
yum search yum-plugin
Вы можете установить выбранный плагин командой yum install
, как и любой другой пакет:
yum install yum-plugin-changelog
yum -y install yum-versionlock
Чтобы заблокировать обновление пакета через плагин, выполните:
yum versionlock nginx
Вывести список заблокировнных пакетов:
yum versionlock list
Убрать пакет из заблокированных:
yum versionlock delete nginx

Если вам в какой-то момент времени не нужно использовать определенный плагин, вы его можете отключить, добавив префикс при вызове yum:
--disableplugin=fastestmirror
Или же отключить вообще все плагины, установленные в системе:
--noplugins
Использование yum через прокси
Yum для работы с репозиториями программ использует протокол HTTP/1.1. Если ваш Linux сервер имеет доступ в интернет только через HTTP прокси сервер, вы можете указать имя прокси сервера в конфигурационном файле /etc/yum.conf
в секции [main]
:
proxy=http://proxyservername:3128
Если прокси-сервер требует авторизацию, добавьте строки:
proxy_proxy_username=user
proxy_password=pass
Для проверки работы yum через прокси сервер воспользуйтесь командой:
yum clean all && yum search nginx
Для проверки я указал публичный прокси сервер с Германии и при установке, сработал плагин fastestmirror
, нашел зеркала с которых скорость будет выше:

Если нужно использовать прокси только для некоторых репозиториев, не нужно править файл /etc/yum.conf
, а настройки прокси указать в конфигурационном файле репозитория /etc/yum.repos.d/ваш_конфиг.repo
.
Комментарии (0)
Пока еще не было комментариев ✍️