Установка пакетов в RPM-дистрибутивах: yum и dnf без лишней теории
Чтобы установить программу через yum/dnf, обычно достаточно команды sudo dnf install имя_пакета (или sudo yum install имя_пакета). Если пакет не находится — проверьте репозитории и обновите кэш метаданных.
Yum или DNF: что использовать
- Fedora, RHEL 8/9, Rocky/Alma 8/9: основной инструмент —
dnf. Командаyumчасто работает как совместимая оболочка, но лучше привыкать кdnf. - CentOS 7 и старые системы: чаще встречается классический
yum.
Проверить, что у вас установлено:
dnf --version
yum --version
Установка, поиск и обновление пакетов
Установить пакет
sudo dnf install имя_пакета
# или
sudo yum install имя_пакета
Примеры:
sudo dnf install htop
sudo dnf install nginx
Найти пакет и уточнить имя
dnf search ключевое_слово
dnf info имя_пакета
dnf list --available | grep -i часть_имени
Обновить пакеты (и систему)
sudo dnf upgrade
# в yum чаще используют:
sudo yum update
Удалить пакет и ненужные зависимости
sudo dnf remove имя_пакета
sudo dnf autoremove
Перед подтверждением remove/autoremove внимательно смотрите список пакетов на удаление — на сервере легко снести лишнее, если зависимость была общей.
Локальный RPM, группы и репозитории
Установить локальный .rpm (с зависимостями)
sudo dnf install ./package.rpm
# или
sudo yum localinstall ./package.rpm
Ставьте локальные RPM через dnf/yum, а не через rpm -i: пакетный менеджер подтянет зависимости из репозиториев автоматически (если они доступны).
Установить “группу” пакетов (например, инструменты разработки)
sudo dnf group list
sudo dnf group install "Development Tools"
Репозитории: посмотреть, включить, обновить кэш
Список репозиториев:
dnf repolist
dnf repolist --all
Обновить кэш метаданных (часто решает “не найден пакет”):
sudo dnf clean all
sudo dnf makecache
Добавление репозитория зависит от версии dnf (в некоторых системах синтаксис config-manager отличается). Если ваша команда не принимается, сначала установите плагин и проверьте справку:
sudo dnf install dnf-plugins-core
dnf config-manager --help
Частые ошибки при установке и быстрые решения
Пакет не найден: No match for argument
- Очистите и пересоберите кэш:
sudo dnf clean all
sudo dnf makecache
- Проверьте, что нужный репозиторий включён:
dnf repolist --all
- Уточните название через поиск:
dnf search часть_названия
Конфликты и зависимости: conflicts, cannot install
Иногда помогают опции:
sudo dnf install имя_пакета --allowerasing
sudo dnf install имя_пакета --nobest
sudo dnf install имя_пакета --skip-broken
Не используйте эти флаги “по привычке” на продакшене: они могут заменить/удалить важные пакеты. Сначала посмотрите, какие именно зависимости конфликтуют (dnf обычно печатает список).
Шпаргалка: основные команды yum и dnf
| Задача | DNF | YUM |
|---|---|---|
| Установить пакет | dnf install pkg | yum install pkg |
| Удалить пакет | dnf remove pkg | yum remove pkg |
| Обновить пакеты | dnf upgrade | yum update |
| Найти пакет | dnf search term | yum search term |
| Инфо о пакете | dnf info pkg | yum info pkg |
| “Кому принадлежит файл” | dnf provides /path | yum provides /path |
| Список репозиториев | dnf repolist | yum repolist |
| Очистить кэш | dnf clean all | yum clean all |