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

«Какие пакетные менеджеры используются в CentOS?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В CentOS (и его наследнике Rocky Linux) используются следующие пакетные менеджеры, работающие с форматом RPM:

  1. DNF (Dandified YUM)основной менеджер в CentOS 8 / Rocky Linux 8+. Он пришел на смену YUM, предлагая более высокую производительность, лучшее разрешение зависимостей и расширяемость через плагины.

    # Установка пакета
    sudo dnf install nginx
    # Поиск пакета
    dnf search "python3.*devel"
    # Обновление всех пакетов
    sudo dnf update
    # Просмотр истории операций
    dnf history
  2. YUM (Yellowdog Updater Modified)основной менеджер в CentOS 7. Хотя в CentOS 8+ он является симлинком на DNF для обратной совместимости, в CentOS 7 это самостоятельный инструмент.

    sudo yum install httpd
    sudo yum update --security  # Установка только security-обновлений
    yum list installed | grep docker
  3. RPM (RPM Package Manager)низкоуровневая утилита. DNF/YUM используют его как бэкенд. RPM работает с отдельными .rpm файлами, но не разрешает зависимости автоматически. Используется для прямых операций с пакетами.

    # Установка локального RPM-файла
    sudo rpm -ivh package.rpm
    # Запрос информации об установленном пакете
    rpm -qi kernel
    # Проверка, какой пакет владеет файлом
    rpm -qf /usr/bin/ssh
    # Удаление пакета
    sudo rpm -e package-name

Для управления пакетами в контейнерах или при автоматизации я предпочитаю использовать dnf (или yum на CentOS 7) из-за автоматического разрешения зависимостей.