← Назад к вопросам

Какие пакетные менеджеры используются в CentOS

1.0 Junior🔥 161 комментариев
#Linux и администрирование

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Пакетные менеджеры в CentOS: от традиций к будущему

В CentOS, как и в его родительском дистрибутиве RHEL (Red Hat Enterprise Linux), традиционно использовался пакетный менеджер YUM (Yellowdog Updater, Modified), который является фронтендом к низкоуровневому менеджеру RPM (RPM Package Manager). Однако с выпуском CentOS 8 и, особенно, с переходом на CentOS Stream, экосистема значительно изменилась. Вот основные пакетные менеджеры, используемые в CentOS, с учетом эволюции дистрибутива:

1. RPM (RPM Package Manager) – низкоуровневый менеджер

Это фундаментальный инструмент, который непосредственно работает с файлами .rpm. Он устанавливает, обновляет, удаляет и запрашивает информацию о пакетах, но не разрешает зависимости автоматически.

# Примеры базовых команд RPM
rpm -ivh package.rpm        # Установка пакета
rpm -e package-name         # Удаление пакета
rpm -qa | grep nginx        # Поиск установленного пакета
rpm -ql package-name        # Показать файлы пакета

2. YUM (до CentOS 7) – основной высокоуровневый менеджер

YUM был стандартным инструментом для управления пакетами в CentOS 6 и 7. Он автоматически разрешает зависимости, используя репозитории, указанные в /etc/yum.repos.d/.

# Типичные команды YUM
yum install nginx           # Установка пакета
yum update                  # Обновление всех пакетов
yum search httpd            # Поиск пакета
yum remove package          # Удаление пакета
yum history                 # Просмотр истории операций

3. DNF (с CentOS 8) – преемник YUM

Начиная с CentOS 8, DNF (Dandified YUM) полностью заменил YUM. Он предоставляет аналогичный синтаксис команд, но работает быстрее, имеет лучшее разрешение зависимостей и более современную кодовую базу. В CentOS 8/Stream команда yum часто является симлинком на dnf.

# Команды DNF (аналогичны YUM)
dnf install nginx
dnf update
dnf list available          # Показать доступные пакеты
dnf repoquery --requires httpd  # Показать зависимости

4. Micro DNF (microdnf) – минималистичная версия

Это упрощенная версия DNF, предназначенная для контейнеров и минимальных окружений, где важен маленький размер. Часто используется в Docker-образах на основе CentOS.

# Пример использования в Dockerfile
FROM centos:8
RUN microdnf install nginx && microdnf clean all

5. Дополнительные инструменты и менеджеры

  • yum-utils / dnf-utils: Набор утилит, расширяющих функциональность (например, yumdownloader, repoquery).
  • RPM Fusion и EPEL: Сторонние репозитории, которые добавляются в систему, после чего их пакеты управляются через YUM/DNF.
  • Flatpak и Snap: В современных версиях CentOS можно использовать эти кроссплатформенные менеджеры для изолированных приложений, хотя они не являются "родными".

Эволюция и CentOS Stream

С появлением CentOS Stream (промежуточное звено между Fedora и RHEL) DNF остаётся основным менеджером, но обновления пакетов приходят чаще. Важно отметить, что традиционный CentOS Linux 7 продолжает использовать YUM, в то время как CentOS Stream 8 и 9 используют DNF.

Пример рабочего процесса в современном CentOS Stream

# 1. Обновление кэша репозиториев
sudo dnf check-update

# 2. Установка пакета с автоматическим разрешением зависимо2стей
sudo dnf install -y git

# 3. Поиск информации о пакете
dnf info git

# 4. Управление репозиториями
sudo dnf config-manager --add-repo https://example.com/repo.repo

# 5. Просмотр истории операций (полезно для отката)
dnf history list
dnf history undo 5  # Откат операции с ID 5

Ключевые отличия и рекомендации

  • Для CentOS 7 и ниже: Используйте YUM как основной инструмент.
  • Для CentOS 8, CentOS Stream 8/9: Используйте DNF (хотя команда yum может перенаправляться на него).
  • В контейнерах: Рассмотрите microdnf для экономии места.
  • Для низкоуровневых операций: Используйте RPM, когда нужен прямой контроль.

Как DevOps-инженер, я рекомендую стандартизировать скрипты и конфигурации управления пакетами в зависимости от версии CentOS, используя условные проверки в скриптах Ansible, Chef или Puppet. Например, в Ansible можно использовать модуль package, который автоматически выбирает правильный менеджер, или явно указывать yum или dnf через модуль dnf_module в новых версиях. Понимание этих инструментов критично для автоматизации развёртывания, обеспечения безопасности (своевременные обновления) и управления инфраструктурой.