Команда yum: использование и опции, yum-utils и проверка репозиториев

Тестовая средаСемейство RHELAlmaLinux 9.8Учётная запись root
Команды для пакетовyumyum-utilsrpmРасположение/usr/bin/yum

Команда yum — это команда управления пакетами, которая устанавливает, обновляет и удаляет пакеты в Linux семейства RHEL. Когда мы запустили команды просмотра и проверки обновлений, а также утилиты yum-utils на сервере AlmaLinux 9, yum работал как та же программа, что и dnf, и вывод тоже совпадал с выводом dnf.

Список репозиториев, номера релизов пакетов и время установки в выводе ниже — примерные значения.

1️⃣ Основы команды yum: yum и dnf

В AlmaLinux 9 при вводе yum запускается dnf. Причина в том, что /usr/bin/yum — это ссылка на dnf-3.

ls -l /usr/bin/yum /usr/bin/dnf
lrwxrwxrwx 1 root root 5 Oct  5 10:12 /usr/bin/dnf -> dnf-3
lrwxrwxrwx 1 root root 5 Oct  5 10:12 /usr/bin/yum -> dnf-3

Оба файла оказались ссылками на dnf-3. Поэтому даже yum --version показывает версию dnf.

yum --version
4.14.0
  Installed: dnf-0:4.14.0-21.el9_8.alma.1.noarch at Mon Oct  5 10:12:30 2026
  Built    : AlmaLinux Packaging Team <packager@almalinux.org> at Fri May  1 09:30:00 2026

  Installed: rpm-0:4.16.1.3-23.el9.x86_64 at Mon Oct  5 10:12:08 2026
  Built    : AlmaLinux Packaging Team <packager@almalinux.org> at Thu Mar 12 08:15:20 2026

Первая строка, 4.14.0, — это версия dnf, а ниже идёт время установки пакетов dnf и rpm. Версия rpm тоже выводится, потому что в итоге yum устанавливает полученные из репозитория пакеты с помощью rpm.

Базовая форма команды — yum, опции, команда и имя пакета, именно в этом порядке. Первая строка --help показывает эту форму, а ниже идёт список команд.

yum --help | head -n 12
usage: yum [options] COMMAND

List of Main Commands:

alias                     List or create command aliases
autoremove                remove all unneeded packages that were originally installed as dependencies
check                     check for problems in the packagedb
check-update              check for available package upgrades
clean                     remove cached data
deplist                   [deprecated, use repoquery --deplist] List package's dependencies and what packages provide them
distro-sync               synchronize installed packages to the latest available versions
downgrade                 Downgrade a package

Часто используемые команды собраны в таблице.

КомандаНазначение
list installedСписок установленных пакетов (с именем пакета — только этот пакет)
list updatesСписок пакетов, у которых в репозитории есть более новая версия
check-updateПроверка наличия обновлений (код выхода 100, если они есть)
infoВерсия, размер, репозиторий и описание одного пакета
searchПоиск пакетов по имени и описанию
installУстановка пакета (вместе с зависимостями)
removeУдаление пакета (то же, что erase)
updateОбновление установленных пакетов до новой версии (то же, что upgrade)
autoremoveУдаление пакетов, установленных как зависимости и больше не нужных
makecacheЗаранее загрузить метаданные репозитория и создать кэш
clean allУдалить весь загруженный кэш
repolistСписок включённых репозиториев
deplistЗависимости и пакеты, которые их предоставляют (рекомендуется repoquery --deplist)
historyИстория транзакций установки и удаления

2️⃣ Опции команды yum: -y, -C, exclude, enablerepo

Опции ставятся между yum и командой. -y отвечает «да» на вопросы, поэтому используется в скриптах; когда вы вручную запускаете update на рабочем сервере, лучше обойтись без -y, прочитать таблицу транзакции и ответить самому.

ОпцияКопироватьОписание
-C, --cacheonlyИспользует только загруженный кэш, не подключаясь к репозиториям.
-q, --quietСкрывает сообщения вроде строки метаданных и выводит только результат.
--showduplicatesВыводит и установленную версию, и версии того же пакета в репозитории.
--exclude=PKG, -x PKGИсключает этот пакет из текущей команды (можно использовать шаблоны вроде kernel*).
--enablerepo=REPOВключает отключённый репозиторий только для этой команды.
--versionВыводит версии yum (dnf) и rpm.
-h, --helpВыводит справку.
ОпцияКопироватьОписание
-y, --assumeyesОтвечает «да» на все вопросы.
-v, --verboseПодробно выводит ход работы.
--disablerepo=REPOОтключает включённый репозиторий только для этой команды.
--skip-brokenПропускает пакеты со сломанными зависимостями и продолжает с остальными.

-C выводит результат только из загруженного кэша, не подключаясь к репозиториям. В первой строке остаётся время последнего обновления кэша, а результат начинается со второй строки.

yum -C list tree
Last metadata expiration check: 0:35:03 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

С -q первая строка пропадает и выводится только результат.

yum -C -q list installed tree
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

--showduplicates выводит рядом установленную версию и версии, которые есть в репозитории.

yum -C --showduplicates list libavif
Last metadata expiration check: 0:38:15 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
libavif.x86_64                      0.11.1-7.el9                       @epel
Available Packages
libavif.x86_64                      1.1.1-2.el9                        epel

0.11.1 в Installed Packages и 1.1.1 в Available Packages — это две версии одного пакета. Версия в репозитории выше, поэтому libavif подлежит обновлению.

--exclude исключает этот пакет из текущей команды.

yum -C --exclude=libavif check-update libavif libdav1d
Last metadata expiration check: 0:35:10 ago on Thu Oct 29 05:32:35 2026.

libdav1d.x86_64                         1.5.4-2.el9                         epel

Указаны два пакета, но libavif исключён и остался только libdav1d. С update обновляется всё, кроме этого пакета.

3️⃣ Управление пакетами в yum и порядок обновления

Даже зная опции, сначала нужно увидеть, что установлено и что вышло нового, чтобы решить, какие пакеты обновлять. Поэтому начнём с команд, которые проверяют установленные пакеты.

yum -C list installed tree
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

@baseos в последнем столбце — это репозиторий, из которого был установлен пакет. Если запросить через rpm -q, версия выводится в одну строку.

rpm -q tree htop libavif
tree-1.8.0-12.el9.x86_64
package htop is not installed
libavif-0.11.1-7.el9.x86_64

Неустановленный пакет даёт одну строку not installed, а код выхода равен 1.

Пакеты, у которых в репозитории вышла новая версия, проверяют с помощью list updates.

yum -C list updates libavif libdav1d
Last metadata expiration check: 0:35:07 ago on Thu Oct 29 05:32:35 2026.
Available Upgrades
libavif.x86_64                          1.1.1-2.el9                         epel
libdav1d.x86_64                         1.5.4-2.el9                         epel

Под Available Upgrades перечислены пакеты с новой версией. Без имени пакета проверяется всё установленное.

check-update сообщает тот же список и через код выхода.

yum -C check-update libavif libdav1d; echo $?
Last metadata expiration check: 0:35:08 ago on Thu Oct 29 05:32:35 2026.

libavif.x86_64                          1.1.1-2.el9                         epel
libdav1d.x86_64                         1.5.4-2.el9                         epel
100

100 в последней строке — это код выхода. Если обновления есть, он равен 100, если нет — 0, поэтому скрипты принимают решение по этому значению.

Обновление выполняется в порядке makecache, update, autoremove.

yum makecache

makecache заранее загружает метаданные репозитория. update загружает их сам, так что этот шаг можно пропустить.

yum update

update поднимает все установленные пакеты до новых версий и заодно разбирается с зависимостями.

yum update libavif

С именем пакета обновляется только этот пакет.

yum autoremove

autoremove удаляет пакеты, установленные вместе с другими как зависимости и больше не нужные. Запускайте его после update.

yum update --exclude='kernel*'

Чтобы обновиться без ядра, добавьте к --exclude шаблон kernel. После обновления ядра сервер нужно перезагрузить, чтобы он работал на новом ядре, а нужна ли перезагрузка, проверяют утилитой needs-restarting из yum-utils.

4️⃣ Утилиты yum-utils: yumdownloader, repoquery, needs-restarting

В AlmaLinux 9 yum-utils — это слой совместимости, который предоставляет dnf-plugins-core. Имена команд остались со времён старого YUM, но на деле выполняются плагины dnf.

yum -C info yum-utils
Last metadata expiration check: 0:38:12 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
Name         : yum-utils
Version      : 4.3.0
Release      : 14.el9
Architecture : noarch
Size         : 23 k
Source       : dnf-plugins-core-4.3.0-14.el9.src.rpm
Repository   : @System
From repo    : baseos
Summary      : Yum-utils CLI compatibility layer
URL          : https://github.com/rpm-software-management/dnf-plugins-core
License      : GPLv2+
Description  : As a Yum-utils CLI compatibility layer, supplies in CLI shims for
             : debuginfo-install, repograph, package-cleanup, repoclosure, repomanage,
             : repoquery, reposync, repotrack, repodiff, builddep, config-manager, debug,
             : download and yum-groups-manager that use new implementations using DNF.

Source — dnf-plugins-core, а Summary — Yum-utils CLI compatibility layer. Если пакет не установлен, установите его командой [yum install yum-utils].

17 команд, которые устанавливает этот пакет, выводит rpm -ql.

rpm -ql yum-utils | grep bin/
/usr/bin/debuginfo-install
/usr/bin/find-repos-of-install
/usr/bin/needs-restarting
/usr/bin/package-cleanup
/usr/bin/repo-graph
/usr/bin/repoclosure
/usr/bin/repodiff
/usr/bin/repomanage
/usr/bin/repoquery
/usr/bin/reposync
/usr/bin/repotrack
/usr/bin/yum-builddep
/usr/bin/yum-config-manager
/usr/bin/yum-debug-dump
/usr/bin/yum-debug-restore
/usr/bin/yum-groups-manager
/usr/bin/yumdownloader
ls -l /usr/bin/yumdownloader /usr/bin/repoquery /usr/bin/needs-restarting /usr/bin/yum-config-manager
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/needs-restarting -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/repoquery -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/yum-config-manager -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/yumdownloader -> /usr/libexec/dnf-utils

Все они оказались ссылками на один файл — /usr/libexec/dnf-utils. Часто используемые утилиты и их назначение собраны в дерево.

yum-utilsОдин пакет — все 17 команд являются ссылками на /usr/libexec/dnf-utils
yumdownloaderЗагрузка файлов пакетов (.rpm) · --urls выводит только адреса
repoqueryЗапрос списка файлов, зависимостей и обратных зависимостей пакета
needs-restartingПроверка, нужна ли перезагрузка или перезапуск после обновления
package-cleanupПоиск дублирующихся, осиротевших и проблемных пакетов
yum-builddepУстановка пакетов, нужных для сборки исходного RPM
yum-config-managerВключение, отключение и добавление репозиториев (меняет файлы конфигурации)
repoclosure · repodiff · repomanage · repo-graphПроверка, сравнение, очистка репозиториев и построение графа
reposync · repotrackЗагрузка репозиториев и групп пакетов
debuginfo-install · find-repos-of-install · yum-debug-dump · yum-debug-restore · yum-groups-managerОтладочная информация · исходный репозиторий · дамп и восстановление конфигурации · управление группами

yumdownloader только загружает файлы пакетов, не устанавливая их. С --urls выводит только адреса, с которых загружал бы.

yumdownloader --urls tree
Last metadata expiration check: 0:35:16 ago on Thu Oct 29 05:32:35 2026.
https://repo.almalinux.org/almalinux/9.8/BaseOS/x86_64/os/Packages/tree-1.8.0-12.el9.x86_64.rpm

Адрес репозитория и имя файла выводятся в одну строку. По этому адресу можно заранее скачать файлы, чтобы перенести их на сервер без доступа к интернету и установить там.

repoquery запрашивает файлы, которые устанавливает пакет, и его зависимости.

repoquery -l tree
Last metadata expiration check: 0:35:17 ago on Thu Oct 29 05:32:35 2026.
/usr/bin/tree
/usr/lib/.build-id
/usr/lib/.build-id/e0
/usr/lib/.build-id/e0/e2ec3d46003583b56979e08d437395bd0d2a07
/usr/share/doc/tree
/usr/share/doc/tree/README
/usr/share/licenses/tree
/usr/share/licenses/tree/LICENSE
/usr/share/man/man1/tree.1.gz

-l — это список файлов пакета. В нём один исполняемый файл, а также документация, лицензия и справочная страница.

repoquery --requires tree
Last metadata expiration check: 0:35:19 ago on Thu Oct 29 05:32:35 2026.
libc.so.6(GLIBC_2.34)(64bit)
rtld(GNU_HASH)

--requires показывает нужные библиотеки. yum deplist выводит то же самое вместе с пакетами-поставщиками, но в справке он помечен как deprecated, поэтому вместо него используют repoquery --deplist.

yum -C repoquery --deplist tree
Last metadata expiration check: 0:38:17 ago on Thu Oct 29 05:32:35 2026.
package: tree-1.8.0-12.el9.x86_64
  dependency: libc.so.6(GLIBC_2.34)(64bit)
   provider: glibc-2.34-170.el9_8.x86_64
  dependency: rtld(GNU_HASH)
   provider: glibc-2.34-170.el9_8.i686
   provider: glibc-2.34-170.el9_8.x86_64

Строки dependency — это то, что нужно, а строки provider — пакеты, которые это предоставляют.

Нужна ли перезагрузка после обновления, проверяют командой needs-restarting -r.

needs-restarting -r
No core libraries or services have been updated since boot-up.
Reboot should not be necessary.

После обновления ядра или ключевой библиотеки сообщение меняется на то, что нужна перезагрузка, и команда завершается с кодом выхода 1.

Если запустить package-cleanup без опций, он выводит только сообщение с просьбой выбрать, какую проверку выполнить.

package-cleanup
package-cleanup has to be executed with one of the options: --dupes, --leaves, --orphans, --problems or --cleandupes

5️⃣ Проверка репозиториев yum: repolist и опция enablerepo

Даже со всеми утилитами yum ничего не найдёт, если пакета нет в репозитории. Поэтому сначала смотрят, какие репозитории yum включены.

yum repolist
repo id             repo name
appstream           AlmaLinux 9 - AppStream
baseos              AlmaLinux 9 - BaseOS
epel                Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras              AlmaLinux 9 - Extras

repolist выводит только репозитории с enabled=1 в файле конфигурации. baseos и appstream — стандартные репозитории дистрибутива, а epel — репозиторий, добавленный отдельно.

yum repolist --all | head -n 12
repo id                       repo name                                 status
appstream                     AlmaLinux 9 - AppStream                   enabled
appstream-debuginfo           AlmaLinux 9 - AppStream - Debug           disabled
appstream-source              AlmaLinux 9 - AppStream - Source          disabled
baseos                        AlmaLinux 9 - BaseOS                      enabled
baseos-debuginfo              AlmaLinux 9 - BaseOS - Debug              disabled
baseos-source                 AlmaLinux 9 - BaseOS - Source             disabled
crb                           AlmaLinux 9 - CRB                         disabled
crb-debuginfo                 AlmaLinux 9 - CRB - Debug                 disabled
crb-source                    AlmaLinux 9 - CRB - Source                disabled
epel                          Extra Packages for Enterprise Linux 9 - x enabled
epel-cisco-openh264           Extra Packages for Enterprise Linux 9 ope enabled

--all выводит и отключённые репозитории вместе со столбцом status. Пакеты из репозитория в состоянии disabled, например crb, в таком виде не установить.

Чтобы включить отключённый репозиторий только для этой команды, добавьте --enablerepo.

yum --enablerepo=crb repolist
repo id             repo name
appstream           AlmaLinux 9 - AppStream
baseos              AlmaLinux 9 - BaseOS
crb                 AlmaLinux 9 - CRB
epel                Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras              AlmaLinux 9 - Extras

crb появился в списке. Файл конфигурации не меняется, поэтому в следующей команде он снова выпадет. Чтобы репозиторий оставался включённым, измените файл конфигурации с помощью yum-config-manager. Как репозитории включаются и отключаются, можно посмотреть на диаграмме ниже, нажимая кнопки команд.

🧭 Репозитории, в которых yum ищет пакеты
Поясняющая схема
🔍 Команда
$ yum repolist--enablerepo=crb repolist--disablerepo=epel repolist
baseosВкл.Вкл. только сейчасВыкл. только сейчас
appstreamВкл.Вкл. только сейчасВыкл. только сейчас
extrasВкл.Вкл. только сейчасВыкл. только сейчас
epelВкл.Вкл. только сейчасВыкл. только сейчас
crbВыкл.Вкл. только сейчасВыкл. только сейчас
➜
yumРепозитории для поиска пакетов564
repolist выводит только репозитории с enabled=1 в файле конфигурации. yum ищет пакеты только в репозиториях из этого списка. Пакеты из отключённого репозитория, например crb, не видны.
С --enablerepo=crb репозиторий crb включается только для этой одной команды и попадает в список. Файл конфигурации не меняется, поэтому в следующей команде он снова выпадет.
С --disablerepo=epel репозиторий epel выпадает только в этой одной команде. Чтобы постоянно включить или отключить репозиторий, используйте yum-config-manager, который меняет файл конфигурации.

Добавление нового репозитория, например EPEL, сводится к установке одного пакета репозитория.

yum install epel-release

После установки в /etc/yum.repos.d/ появляется файл epel.repo, а epel появляется в repolist.

🔲 Симулятор команды yum

В симуляторе ниже можно самому ввести yum list, check-update, repolist и команды yum-utils и посмотреть вывод. Список репозиториев содержит те же примерные значения, что и статья, а команды установки, удаления и обновления только выводят сообщение.

Симулятор команды yumyum 4.14.0
[root@server work]#
Клавишами ↑↓ можно вызвать ранее введённые команды.

🔢 FAQ & рекомендуемые материалы

Нет. Ввод yum delete заканчивается ошибкой No such command: delete. Пакет удаляют командой yum remove, и erase делает то же самое.

Это одна и та же команда. В dnf update — другое имя upgrade, поэтому даже yum help update выводит справку, начинающуюся с usage: yum upgrade.

С -C команды list и info работают по загруженному кэшу, не подключаясь к репозиториям. Чтобы установить пакет, скачайте файл .rpm с помощью yumdownloader на другом сервере, перенесите его и передайте путь к файлу команде install.

ℹ️ О партнёрских ссылках
Материалы этого сайта содержат партнёрские ссылки. Если посетитель покупает товар или услугу по такой ссылке, сайт получает комиссию от продавца. При этом сумма, которую платит покупатель (при акционных скидках сумма снижается ↓), не увеличивается. Указанные цены, скидки и наличие актуальны на момент написания и могут отличаться, поэтому перед покупкой уточняйте их у продавца. Товары выбираются и оцениваются по нашим собственным критериям, а комиссия не влияет ни на порядок, ни на содержание обзоров.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Докажите, что вы человек: 2   +   4   =