Управление пакетами: apt, yum, dnf, pacman, zypper
TIP
Эта статья — часть серии Linux administration, посвящённой самостоятельному администрированию Linux, Self-Hosting и DevOps. Управление пакетами — основа установки, обновления и удаления программ в Linux.
📌 О чём эта статья?
В Linux программы устанавливаются не через .exe или .dmg, а через менеджеры пакетов — инструменты, которые автоматически управляют зависимостями, обновлениями и целостностью системы.
В этой статье вы узнаете:
- Что такое пакеты и зачем они нужны
- Как работают основные менеджеры пакетов:
apt,dnf,pacman,zypper - Основные команды для установки, обновления и удаления
- Различия между дистрибутивами
- Практические советы и лучшие практики
🧩 Что такое пакет и менеджер пакетов?
Пакет — это архив с программой, её зависимостями, метаданными и скриптами установки.
Менеджер пакетов — утилита, которая:
- Устанавливает, обновляет, удаляет пакеты
- Решает зависимости (автоматически устанавливает нужные библиотеки)
- Проверяет целостность и подлинность
- Ведёт реестр установленных программ
NOTE
В отличие от ручной установки (
make install), менеджеры пакетов позволяют чисто удалить программу и отслеживать обновления.
Источник: Linux Foundation — Package Management
🔧 Основные менеджеры пакетов и их дистрибутивы
| Менеджер | Дистрибутивы | Основной формат пакета |
|---|---|---|
apt / apt-get | Debian, Ubuntu, Mint | .deb |
dnf | Fedora, RHEL 8+, CentOS 8+ | .rpm |
yum | RHEL/CentOS 7 и ранее | .rpm |
pacman | Arch Linux, Manjaro | .pkg.tar.zst |
zypper | openSUSE, SLES | .rpm |
INFO
dnf— это заменаyum, более быстрая и надёжная.
apt— современная обёртка надapt-get, с улучшенным UX.
📦 apt — Debian, Ubuntu, Linux Mint
🔹 Основные команды
sudo apt update # Обновить список пакетов
sudo apt upgrade # Обновить установленные пакеты
sudo apt install nginx # Установить пакет
sudo apt remove nginx # Удалить пакет (оставляет конфиги)
sudo apt purge nginx # Полное удаление (включая конфиги)
sudo apt autoremove # Удалить неиспользуемые зависимости
sudo apt search firefox # Поиск пакета
sudo apt show nginx # Показать информацию о пакете🔹 Дополнительно
sudo apt full-upgrade # Обновление с возможным удалением пакетов
sudo apt list --upgradable # Список доступных обновлений
sudo apt edit-sources # Открыть sources.list в редактореINFO
Файлы репозиториев:
/etc/apt/sources.list,/etc/apt/sources.list.d/
Кэш:/var/cache/apt/archives/
🔧 dnf — Fedora, RHEL 8+, CentOS 8+
dnf (Dandified YUM) — современная замена yum.
🔹 Основные команды
sudo dnf check-update # Проверить обновления
sudo dnf upgrade # Обновить систему
sudo dnf install httpd # Установить пакет
sudo dnf remove httpd # Удалить
sudo dnf autoremove # Удалить "сирот"
sudo dnf search vim # Поиск
sudo dnf info httpd # Информация о пакете
sudo dnf clean all # Очистить кэш🔹 Группы пакетов (например, “Web Server”)
sudo dnf group list # Список групп
sudo dnf group install "Web Server"WARNING
В RHEL/CentOS 7 и ранее используется
yum.
Начиная с версии 8 — толькоdnf.
🔙 yum — RHEL 7, CentOS 7 (устаревший)
CAUTION
yumустарел и не рекомендуется к использованию в новых системах.
🔹 Основные команды (аналогичны dnf)
sudo yum update
sudo yum install httpd
sudo yum remove httpd
sudo yum search nano
sudo yum clean allINFO
В RHEL 7/CentOS 7
yum— стандарт.
Но уже содержитdnfкак опцию.
🏹 pacman — Arch Linux, Manjaro
pacman — простой, быстрый и мощный менеджер пакетов.
🔹 Основные команды
sudo pacman -Syu # Обновить систему (синхронизация + обновление)
sudo pacman -S nginx # Установить пакет
sudo pacman -R nginx # Удалить пакет
sudo pacman -Rns nginx # Полное удаление (включая зависимости)
sudo pacman -Q # Список установленных пакетов
sudo pacman -Qs nginx # Поиск в локальной базе
sudo pacman -Ss firefox # Поиск в репозиториях
sudo pacman -Si nginx # Информация о пакете🔹 Дополнительно
sudo pacman -Sc # Очистить кэш (сохраняя текущие пакеты)
sudo pacman -Scc # Полная очистка кэшаINFO
Arch Linux использует rolling release — обновления выходят сразу.
Регулярное обновление (-Syu) — критически важно.
Источник: Arch Wiki — Pacman
🔄 zypper — openSUSE, SUSE Linux Enterprise
zypper — мощный менеджер пакетов с поддержкой сложных сценариев.
🔹 Основные команды
sudo zypper refresh # Обновить репозитории
sudo zypper update # Обновить пакеты
sudo zypper install nginx # Установить
sudo zypper remove nginx # Удалить
sudo zypper search firefox # Поиск
sudo zypper info nginx # Информация
sudo zypper lr # Список репозиториев
sudo zypper dup # Обновить систему (dist-upgrade)🔹 Работа с репозиториями
sudo zypper ar https://repo.url repo-name # Добавить репозиторий
sudo zypper rr repo-name # УдалитьINFO
openSUSE предлагает два варианта:
- Leap — стабильный, на основе SLE
- Tumbleweed — rolling release
Источник: openSUSE — Zypper Cheat Sheet
🔍 Сравнение команд: таблица
| Задача | apt | dnf | pacman | zypper |
|---|---|---|---|---|
| Обновить индекс | apt update | dnf check-update | — | zypper refresh |
| Обновить систему | apt upgrade | dnf upgrade | pacman -Syu | zypper update или dup |
| Установить пакет | apt install pkg | dnf install pkg | pacman -S pkg | zypper install pkg |
| Удалить пакет | apt remove pkg | dnf remove pkg | pacman -R pkg | zypper remove pkg |
| Полное удаление | apt purge pkg | dnf remove pkg | pacman -Rns pkg | zypper remove --clean-deps pkg |
| Поиск | apt search pkg | dnf search pkg | pacman -Ss pkg | zypper search pkg |
| Информация | apt show pkg | dnf info pkg | pacman -Si pkg | zypper info pkg |
| Очистка кэша | apt clean | dnf clean all | pacman -Sc | zypper clean --all |
🧪 Практические примеры
Пример 1: Установка веб-сервера
Ubuntu:
sudo apt update && sudo apt install nginxFedora:
sudo dnf install nginxArch:
sudo pacman -S nginxopenSUSE:
sudo zypper install nginxПример 2: Обновление всей системы
Debian/Ubuntu:
sudo apt update && sudo apt upgradeFedora:
sudo dnf upgradeArch:
sudo pacman -SyuopenSUSE:
sudo zypper refresh && sudo zypper updateЛучшие практики и советы
- Регулярно обновляйте систему — особенно на серверах.
- Не смешивайте менеджеры пакетов (например,
rpmиyumнапрямую). - Избегайте
--force— это может нарушить зависимости. - Перед массовым удалением проверьте, что будет удалено.
- Используйте
autoremoveдля очистки “сирот”.
🔄 Современные альтернативы: Flatpak, Snap, AppImage
Для пользовательских приложений (браузеры, редакторы) используются универсальные пакеты:
| Формат | Поддержка | Особенности |
|---|---|---|
| Flatpak | Почти все дистрибутивы | Изолированные приложения, порталы |
| Snap | Ubuntu (по умолчанию), другие | Автообновления, “всё в одном” |
| AppImage | Любая система | Портативные исполняемые файлы |
TIP
Используйте их для десктоп-приложений, но не для системных служб.
📊 Диагностика и восстановление
Проблема: повреждённая база пакетов
Debian/Ubuntu:
sudo apt --fix-broken install
sudo dpkg --configure -aFedora/RHEL:
sudo dnf clean all
sudo dnf updateArch:
sudo pacman -Syu --overwrite '*'INFO
Всегда делайте бэкап перед критическими операциями.
✅ Заключение
Теперь вы можете уверенно управлять пакетами в любом дистрибутиве:
- Устанавливать, обновлять и удалять программы
- Понимать различия между
apt,dnf,pacman,zypper - Диагностировать и исправлять проблемы с пакетами
QUOTE
“Хороший администратор — это тот, кто никогда не использует
--forceбез бэкапа.”