Команда yum: использование и опции, yum-utils и проверка репозиториев
Команда 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/dnflrwxrwxrwx 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 --version4.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 12usage: 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 treeLast 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 treeInstalled Packages
tree.x86_64 1.8.0-12.el9 @baseos--showduplicates выводит рядом установленную версию и версии, которые есть в репозитории.
yum -C --showduplicates list libavifLast 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 epel0.11.1 в Installed Packages и 1.1.1 в Available Packages — это две версии одного пакета. Версия в репозитории выше, поэтому libavif подлежит обновлению.
--exclude исключает этот пакет из текущей команды.
yum -C --exclude=libavif check-update libavif libdav1dLast 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 treeInstalled Packages
tree.x86_64 1.8.0-12.el9 @baseos@baseos в последнем столбце — это репозиторий, из которого был установлен пакет. Если запросить через rpm -q, версия выводится в одну строку.
rpm -q tree htop libaviftree-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 libdav1dLast 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
100100 в последней строке — это код выхода. Если обновления есть, он равен 100, если нет — 0, поэтому скрипты принимают решение по этому значению.
Обновление выполняется в порядке makecache, update, autoremove.
yum makecachemakecache заранее загружает метаданные репозитория. update загружает их сам, так что этот шаг можно пропустить.
yum updateupdate поднимает все установленные пакеты до новых версий и заодно разбирается с зависимостями.
yum update libavifС именем пакета обновляется только этот пакет.
yum autoremoveautoremove удаляет пакеты, установленные вместе с другими как зависимости и больше не нужные. Запускайте его после 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-utilsLast 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/yumdownloaderls -l /usr/bin/yumdownloader /usr/bin/repoquery /usr/bin/needs-restarting /usr/bin/yum-config-managerlrwxrwxrwx 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. Часто используемые утилиты и их назначение собраны в дерево.
yumdownloader только загружает файлы пакетов, не устанавливая их. С --urls выводит только адреса, с которых загружал бы.
yumdownloader --urls treeLast 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 treeLast 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 treeLast 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 treeLast 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 -rNo core libraries or services have been updated since boot-up.
Reboot should not be necessary.После обновления ядра или ключевой библиотеки сообщение меняется на то, что нужна перезагрузка, и команда завершается с кодом выхода 1.
Если запустить package-cleanup без опций, он выводит только сообщение с просьбой выбрать, какую проверку выполнить.
package-cleanuppackage-cleanup has to be executed with one of the options: --dupes, --leaves, --orphans, --problems or --cleandupes5️⃣ Проверка репозиториев yum: repolist и опция enablerepo
Даже со всеми утилитами yum ничего не найдёт, если пакета нет в репозитории. Поэтому сначала смотрят, какие репозитории yum включены.
yum repolistrepo 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 - Extrasrepolist выводит только репозитории с enabled=1 в файле конфигурации. baseos и appstream — стандартные репозитории дистрибутива, а epel — репозиторий, добавленный отдельно.
yum repolist --all | head -n 12repo 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 repolistrepo 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 - Extrascrb появился в списке. Файл конфигурации не меняется, поэтому в следующей команде он снова выпадет. Чтобы репозиторий оставался включённым, измените файл конфигурации с помощью yum-config-manager. Как репозитории включаются и отключаются, можно посмотреть на диаграмме ниже, нажимая кнопки команд.
Добавление нового репозитория, например EPEL, сводится к установке одного пакета репозитория.
yum install epel-releaseПосле установки в /etc/yum.repos.d/ появляется файл epel.repo, а epel появляется в repolist.
🔲 Симулятор команды yum
В симуляторе ниже можно самому ввести yum list, check-update, repolist и команды yum-utils и посмотреть вывод. Список репозиториев содержит те же примерные значения, что и статья, а команды установки, удаления и обновления только выводят сообщение.
🔢 FAQ & рекомендуемые материалы
Linux · Понятия
Что такое пакет Linux
Объясняет, что такое пакеты, с которыми работает yum, и откуда берутся зависимости, в сравнении с установочными файлами Windows.
Ubuntu · Пакеты
Команда apt в Ubuntu
Команда apt, которая в семействе Debian выполняет роль yum, её отличие от apt-get и как устанавливать и обновлять.
Linux · Пакеты
Установка snapd в Linux
Как с помощью snap установить программы, которых нет в репозиториях дистрибутива, проверено на Rocky Linux.
ℹ️ О партнёрских ссылках
Материалы этого сайта содержат партнёрские ссылки. Если посетитель покупает товар или услугу по такой ссылке, сайт получает комиссию от продавца. При этом сумма, которую платит покупатель (при акционных скидках сумма снижается ↓), не увеличивается. Указанные цены, скидки и наличие актуальны на момент написания и могут отличаться, поэтому перед покупкой уточняйте их у продавца. Товары выбираются и оцениваются по нашим собственным критериям, а комиссия не влияет ни на порядок, ни на содержание обзоров.