Менеджеры пакетов в Linux: практическое руководство по APT, DNF, YUM и Pacman (2026) | AdminWiki

Менеджеры пакетов в Linux: практическое руководство по APT, DNF, YUM и Pacman (2026)

27 июля 2026 10 мин. чтения

Введение: зачем нужны менеджеры пакетов и как они работают

Менеджер пакетов - это инструмент, который автоматизирует установку, обновление, настройку и удаление программного обеспечения в Linux. Без него администрирование превратилось бы в ручную сборку из исходников с бесконечным разрешением зависимостей. Менеджер пакетов берет на себя отслеживание версий, проверку совместимости библиотек и поддержание целостности системы.

В основе каждого менеджера лежит формат пакета и низкоуровневый инструмент для работы с ним. APT опирается на формат .deb и утилиту dpkg. DNF и YUM работают с форматом .rpm и утилитой rpm. Pacman использует собственный формат .pkg.tar.zst и встроенную базу данных. Когда вы даете команду установить nginx, менеджер скачивает пакет из репозитория, проверяет зависимости, загружает недостающие библиотеки и передает файлы низкоуровневому инструменту для распаковки и настройки.

Эта статья - практический справочник. Вы найдете точные команды для поиска, установки, обновления и удаления пакетов в четырех основных менеджерах. Если вы администрируете Debian-сервер и вам нужно быстро переключиться на Rocky Linux, таблица сравнения и пошаговые примеры сэкономят время. Материал дополняет практическое руководство по Linux для IT-специалистов и углубляется в детали пакетного менеджмента.

Сравнительная таблица основных команд APT, DNF, YUM и Pacman

Таблица закрывает главную боль администратора: «Я знаю команду в apt, но как это сделать в dnf?». Держите ее в закладках.

ДействиеAPT (Debian/Ubuntu)DNF (Fedora/RHEL 8+)YUM (RHEL 7/CentOS 7)Pacman (Arch Linux)
Поиск пакетаapt search nginxdnf search nginxyum search nginxpacman -Ss nginx
Установка пакетаapt install nginxdnf install nginxyum install nginxpacman -S nginx
Удаление пакетаapt remove nginxdnf remove nginxyum remove nginxpacman -R nginx
Удаление с конфигамиapt purge nginxdnf remove nginxyum remove nginxpacman -Rns nginx
Обновление списка пакетовapt updatednf check-updateyum check-updatepacman -Sy
Обновление системыapt upgradednf upgradeyum updatepacman -Syu
Очистка кэшаapt cleandnf clean allyum clean allpaccache -r
Информация о пакетеapt show nginxdnf info nginxyum info nginxpacman -Si nginx
Список установленныхapt list --installeddnf list installedyum list installedpacman -Q

DNF и YUM синтаксически близки: dnf - прямая замена yum в Fedora и RHEL 8+. Команды взаимозаменяемы в 90% случаев. Pacman использует короткие флаги, которые нужно запомнить: -S для синхронизации, -R для удаления, -Q для запросов к локальной базе.

Поиск и установка пакетов

Установка ПО - самая частая операция. Разберем точные команды для каждого менеджера с примерами вывода.

APT: поиск и установка в Debian/Ubuntu

Поиск по имени и описанию:

apt search nginx

Вы получите список пакетов, в имени или описании которых встречается «nginx». Чтобы сузить выдачу, используйте grep:

apt search nginx | grep -i "web server"

Установка одного или нескольких пакетов:

sudo apt install nginx
sudo apt install nginx certbot python3-certbot-nginx

APT автоматически разрешает зависимости и предлагает подтвердить установку. Флаг -y подавляет запрос:

sudo apt install -y nginx

Установка локального .deb файла выполняется через dpkg. Зависимости при этом не разрешаются:

sudo dpkg -i /path/to/package.deb

Если dpkg сообщил о неудовлетворенных зависимостях, исправьте их командой:

sudo apt install -f

APT доустановит недостающие библиотеки и завершит настройку пакета.

DNF и YUM: поиск и установка в Fedora/RHEL

DNF - современный менеджер, заменивший YUM в Fedora 22 и RHEL 8. Он быстрее разрешает зависимости и имеет четкий API. Синтаксис команд идентичен yum в базовых операциях.

Поиск пакета:

dnf search nginx

DNF ищет по имени и сводке пакета. Для поиска по описанию добавьте флаг --searchall:

dnf search --searchall "web server"

Установка:

sudo dnf install nginx
sudo dnf install nginx certbot python3-certbot-nginx

DNF показывает транзакцию: какие пакеты будут установлены, обновлены или удалены. Это прозрачнее, чем в APT.

Установка локального .rpm файла:

sudo dnf install /path/to/package.rpm

DNF сам разрешит зависимости, если они доступны в подключенных репозиториях. Это удобнее, чем связка rpm -i + yum install, которая требовалась в эпоху YUM.

Подробный разбор RPM и DNF с настройкой репозиториев EPEL и RPM Fusion читайте в руководстве по RPM и DNF для CentOS, Fedora и RE OS.

Pacman: поиск и установка в Arch Linux

Pacman оперирует короткими флагами. -S означает sync - синхронизацию с репозиториями.

Поиск пакета:

pacman -Ss nginx

Вывод показывает имя пакета, версию и краткое описание. Для поиска только по имени используйте:

pacman -Ssq nginx

Флаг -q подавляет лишнюю информацию и оставляет только имена пакетов - удобно для скриптов.

Установка:

sudo pacman -S nginx
sudo pacman -S nginx certbot

Pacman устанавливает пакеты и их зависимости одной транзакцией. Если пакет уже установлен, он обновит его до последней версии.

Установка из AUR (Arch User Repository) не выполняется напрямую через pacman. Используйте хелпер, например yay:

yay -S google-chrome

yay автоматически клонирует PKGBUILD, собирает пакет и устанавливает его с зависимостями.

Обновление системы и пакетов

Регулярное обновление закрывает уязвимости. Процесс различается: APT требует двух шагов, DNF и Pacman выполняют всё одной командой.

APT: обновление списка пакетов и апгрейд

APT разделяет синхронизацию индексов и применение обновлений. Сначала загружается актуальный список пакетов из репозиториев:

sudo apt update

Затем применяются обновления установленных пакетов:

sudo apt upgrade

upgrade обновляет пакеты, но не удаляет лишние и не устанавливает новые зависимости, если они требуются для обновления. Если менеджер сообщает «packages have been kept back», используйте full-upgrade:

sudo apt full-upgrade

full-upgrade умнее: он удалит конфликтующие пакеты и установит новые зависимости, чтобы завершить обновление. Это безопасный способ мажорного апгрейда дистрибутива.

DNF/YUM: проверка и применение обновлений

Проверить доступные обновления без их применения:

dnf check-update

Команда выводит список пакетов с новыми версиями и возвращает код 100, если обновления есть. Это удобно для скриптов мониторинга.

Применить все обновления:

sudo dnf upgrade

DNF обновляет индексы и применяет обновления в одной транзакции. Для автоматических обновлений на серверах настройте dnf-automatic:

sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic.timer

Таймер будет ежедневно загружать и применять обновления безопасности.

Pacman: синхронизация и обновление всей системы

Pacman обновляет индексы и пакеты одной командой:

sudo pacman -Syu

-S синхронизирует базу данных, -y загружает свежие индексы, -u применяет обновления. В rolling-release дистрибутиве Arch Linux обновления выходят непрерывно. Перед крупным апгрейдом проверяйте новости на archlinux.org: иногда требуются ручные вмешательства, например, замена конфигурационных файлов.

Если вы хотите только обновить индексы без применения обновлений:

sudo pacman -Sy

Частичные обновления (-Sy без -u) опасны: новый пакет может требовать библиотеки, которых еще нет в системе. Используйте -Syu всегда, когда устанавливаете или обновляете ПО.

Удаление пакетов и очистка системы

Полное удаление пакета включает три уровня: удаление самого пакета, удаление его зависимостей, удаление конфигурационных файлов. В разных менеджерах это достигается разными командами.

APT: remove, purge и autoremove

Удаление пакета без конфигурационных файлов:

sudo apt remove nginx

Конфиги остаются в /etc. Это позволяет восстановить настройки после повторной установки.

Полное удаление с конфигурациями:

sudo apt purge nginx

purge удаляет пакет и его системные конфигурационные файлы. Пользовательские данные в /home не затрагиваются.

Удаление осиротевших зависимостей:

sudo apt autoremove

APT анализирует дерево зависимостей и удаляет пакеты, которые были установлены автоматически и больше не нужны. Запускайте autoremove после каждого удаления - это освобождает место на диске.

DNF/YUM: remove и autoremove

Удаление пакета:

sudo dnf remove nginx

DNF удаляет пакет и зависимости, которые не требуются другим установленным пакетам. Это поведение по умолчанию, в отличие от APT, где нужен отдельный autoremove.

Если вы хотите удалить только указанный пакет без анализа зависимостей:

sudo dnf remove --noautoremove nginx

Для очистки кэша загруженных пакетов:

sudo dnf clean all

Это удаляет заголовки, метаданные и кэшированные RPM-файлы. Полезно перед созданием образа контейнера или виртуальной машины.

Pacman: удаление с зависимостями и очистка кэша

Удаление только пакета:

sudo pacman -R nginx

Зависимости остаются в системе. Это редко нужно.

Удаление пакета с зависимостями, не требуемыми другим ПО:

sudo pacman -Rs nginx

Флаг -s (recursive) удаляет зависимости. Это аналог apt autoremove.

Удаление пакета, зависимостей и конфигурационных файлов:

sudo pacman -Rns nginx

Флаг -n (nosave) удаляет конфигурационные файлы. Это полный аналог apt purge + autoremove.

Очистка кэша пакетов. Pacman хранит загруженные пакеты в /var/cache/pacman/pkg/. Со временем этот каталог разрастается. Для удаления всех кэшированных версий, кроме трех последних:

sudo paccache -r

Утилита paccache входит в пакет pacman-contrib. Для полной очистки кэша:

sudo pacman -Scc

Эта команда удалит все загруженные пакеты. После нее downgrade до предыдущей версии станет невозможен без повторной загрузки.

Управление репозиториями

Репозитории - источники пакетов. У каждого менеджера свой формат конфигурации и способ добавления сторонних источников.

APT: sources.list и PPA

Основной конфигурационный файл - /etc/apt/sources.list. Дополнительные репозитории подключаются через файлы в /etc/apt/sources.list.d/.

Просмотр активных репозиториев:

cat /etc/apt/sources.list
ls /etc/apt/sources.list.d/

Добавление PPA (Personal Package Archive) в Ubuntu:

sudo add-apt-repository ppa:ondrej/php
sudo apt update

PPA - это сторонние репозитории, размещенные на Launchpad. Они удобны для установки свежих версий PHP, Python и другого ПО, но требуют доверия к мейнтейнеру.

Ручное добавление репозитория Debian:

echo "deb https://nginx.org/packages/debian/ bookworm nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
sudo apt update

После изменения sources.list всегда запускайте apt update для синхронизации индексов.

DNF/YUM: .repo файлы и dnf repolist

Конфигурация репозиториев хранится в /etc/yum.repos.d/. Каждый репозиторий описывается файлом с расширением .repo.

Просмотр списка репозиториев:

dnf repolist

Команда показывает включенные репозитории. Для просмотра всех, включая отключенные:

dnf repolist all

Добавление репозитория EPEL (Extra Packages for Enterprise Linux) на RHEL 9:

sudo dnf install epel-release

Пакет epel-release добавляет файл /etc/yum.repos.d/epel.repo и GPG-ключ. EPEL содержит тысячи пакетов, отсутствующих в официальных репозиториях RHEL: nginx, certbot, htop.

Ручное создание .repo файла:

sudo tee /etc/yum.repos.d/nginx.repo <<EOF
[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/rhel/9/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
EOF

После добавления файла выполните dnf check-update для загрузки метаданных нового репозитория.

Pacman: настройка pacman.conf и зеркала

Конфигурация Pacman хранится в /etc/pacman.conf. Секции в квадратных скобках определяют репозитории: [core], [extra], [multilib].

Просмотр активных репозиториев:

grep -E '^\[' /etc/pacman.conf

Для добавления стороннего репозитория, например Arch User Repository (AUR), сам pacman не используется. Вместо этого настройте хелпер yay, который работает с AUR поверх pacman.

Управление зеркалами репозиториев выполняется через файл /etc/pacman.d/mirrorlist. Для автоматического выбора самых быстрых зеркал используйте reflector:

sudo reflector --country Russia --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

Reflector тестирует скорость зеркал и сохраняет отсортированный список. После обновления mirrorlist выполните pacman -Syy для принудительной синхронизации индексов.

Решение типичных проблем и ошибок

Пакетные менеджеры ломаются редко, но метко. Разберем четыре типичные ситуации и команды для восстановления.

Восстановление сломанных зависимостей

Ситуация: установка пакета прервалась, и теперь менеджер сообщает о неудовлетворенных зависимостях.

APT:

sudo apt --fix-broken install

APT проанализирует состояние системы, доустановит недостающие пакеты и завершит прерванную транзакцию. Если это не помогло, попробуйте переконфигурировать все не до конца настроенные пакеты:

sudo dpkg --configure -a

DNF:

sudo dnf distro-sync

distro-sync приводит установленные пакеты в соответствие с репозиториями: обновляет устаревшие, откатывает слишком новые, доустанавливает недостающие зависимости. Это радикальное, но эффективное средство.

Pacman:

sudo pacman -Syu

Повторный запуск полного обновления часто исправляет рассогласование зависимостей. Если пакет конфликтует с существующим, pacman предложит удалить конфликтующий пакет - соглашайтесь.

Ошибки GPG-ключей и блокировки

Ситуация: менеджер сообщает «GPG key ... not found» или «database is locked».

APT - импорт отсутствующего ключа:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEY_ID

В современных версиях Debian/Ubuntu apt-key считается устаревшим. Правильный способ - поместить ключ в /etc/apt/trusted.gpg.d/:

curl -fsSL https://example.com/key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/example.gpg

Pacman - обновление связки ключей:

sudo pacman-key --init
sudo pacman-key --populate archlinux

Если ключ для конкретного пакета отсутствует, установите пакет archlinux-keyring:

sudo pacman -S archlinux-keyring

Блокировка базы данных. Если менеджер сообщает, что база данных заблокирована, значит предыдущий процесс не завершился корректно. Найдите и удалите stale lock-файл:

sudo rm /var/lib/dpkg/lock-frontend   # APT
sudo rm /var/lib/pacman/db.lck        # Pacman

Перед удалением убедитесь, что другой экземпляр менеджера действительно не запущен: проверьте через ps aux | grep apt или ps aux | grep pacman.

Заключение: выбор менеджера и лучшие практики

Менеджер пакетов определяется дистрибутивом, а не личными предпочтениями. На Debian и Ubuntu вы работаете с APT, на Fedora и RHEL - с DNF, на Arch - с Pacman. Переключение между ними сводится к запоминанию синтаксиса, и таблица в этой статье решает эту задачу.

Четыре правила безопасной работы с пакетами:

  • Проверяйте, что устанавливаете. Перед подтверждением транзакции читайте список пакетов - менеджер может предложить удалить то, что вы не планировали трогать.
  • Обновляйтесь регулярно. Еженедельное обновление безопасности снижает риск эксплуатации уязвимостей.
  • Используйте официальные репозитории. Сторонние PPA и .repo файлы подключайте только от проверенных мейнтейнеров.
  • Делайте резервные копии конфигураций. Перед крупным обновлением скопируйте /etc в безопасное место.

Сохраните эту статью в закладки как шпаргалку. Для углубленного изучения RPM-экосистемы обратитесь к руководству по RPM и DNF. Если вы работаете с Alt Linux, изучите специфику apt-rpm и epm. Для управления пакетами на роутерах Keenetic и OpenWrt подготовлено руководство по Opkg.

Поделиться:
Сохранить гайд? В закладки браузера