Какие пакетные менеджеры используются в CentOS
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Пакетные менеджеры в 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 в новых версиях. Понимание этих инструментов критично для автоматизации развёртывания, обеспечения безопасности (своевременные обновления) и управления инфраструктурой.