Управление Пакетами в Linux: Полное Руководство по apt, dnf, pacman и zypper
Переходя между различными дистрибутивами Linux, системные администраторы и разработчики часто сталкиваются с проблемой различий в системах управления пакетами. Команды apt install в Ubuntu, dnf install в Fedora и уникальный синтаксис pacman в Arch могут показаться запутанными. Это руководство поможет вам разобраться в основных командах этих систем, чтобы установка и управление программным обеспечением стали интуитивно понятными.
Несмотря на многообразие дистрибутивов, логика работы пакетных менеджеров остается схожей: обновить списки пакетов, установить новые, удалить ненужные или найти конкретное программное обеспечение. Отличаются лишь сами команды.
🟢 Debian/Ubuntu и семейство (apt)
Семейство дистрибутивов Debian/Ubuntu, включая такие популярные ОС, как Mint и Astra Linux, использует пакеты формата .deb. Менеджер пакетов apt представляет собой высокоуровневую и удобную обертку над низкоуровневой утилитой dpkg.
Обновить список пакетов
sudo apt update
Обновить систему (установить новые версии)
sudo apt upgrade
Установить пакет
sudo apt install nginx
Удалить пакет
sudo apt remove nginx
Удалить пакет + конфиги
sudo apt purge nginx
Поиск пакета по имени
apt search web server
Показать информацию о пакете
apt show nginx
Удалить ненужные зависимости
sudo apt autoremove
🟢 Red Hat / Fedora / CentOS (dnf/yum)
В дистрибутивах, основанных на Red Hat, таких как Fedora, CentOS Stream, Rocky и Alma Linux, исторически использовался менеджер пакетов yum. Однако в современных версиях его заменил более быстрый и функциональный dnf. Эти системы работают с пакетами формата .rpm. Подробнее об управлении пакетами в RHEL и CentOS.
Обновить список и систему
sudo dnf update
Установить пакет
sudo dnf install nginx
Удалить пакет
sudo dnf remove nginx
Поиск
dnf search nginx
Информация о пакете
dnf info nginx
Очистить кэш
sudo dnf clean all
🟢 Arch Linux (pacman)
Arch Linux, известный своей моделью rolling release (непрерывное обновление), использует собственный менеджер пакетов pacman и пакеты формата .pkg.tar.zst. Его синтаксис заметно отличается от apt и dnf, но после привыкания становится весьма эффективным.
Обновить систему (включая список пакетов)
sudo pacman -Syu
Установить пакет
sudo pacman -S nginx
Удалить пакет (только сам пакет)
sudo pacman -R nginx
Удалить пакет с зависимостями (не нужными другим)
sudo pacman -Rs nginx
Поиск
pacman -Ss nginx
Информация о пакете
pacman -Qi nginx
🟢 openSUSE (zypper)
Дистрибутивы openSUSE также используют пакеты формата .rpm, но управляют ими с помощью собственного менеджера пакетов zypper, который обладает мощными возможностями по разрешению зависимостей.
Обновить список
sudo zypper refresh
Обновить систему
sudo zypper update
Установить
sudo zypper install nginx
Удалить
sudo zypper remove nginx
Поиск
zypper search nginx
➕ Преимущества каждого подхода:
- apt — самый распространённый, обладает огромными репозиториями и отличается простотой использования.
- dnf — эффективно разрешает зависимости и поддерживает модули.
- pacman — очень быстрый, имеет лаконичный синтаксис и идеально подходит для моделей rolling-обновлений.
- zypper — предлагает мощные средства для поиска пакетов и разрешения сложных зависимостей.
➖ Недостатки:
- В каждом менеджере свой уникальный синтаксис, что может вызвать путаницу при переключении между дистрибутивами.
- В некоторых дистрибутивах могут встречаться устаревшие версии пакетов (хотя это часто решается подключением сторонних репозиториев).
- Приходится заново привыкать к командам при смене дистрибутива.
🟢 Полезные функции, которые пригодятся всем:
1. Поиск пакета, даже если не знаете точное имя
apt
apt search ^nginx
dnf
dnf whatprovides */nginx.conf
pacman (требуется пакет pkgfile)
pkgfile nginx.conf
2. История действий (что установил вчера?)
apt (просмотр логов)
grep " install " /var/log/dpkg.log
dnf
dnf history
pacman
cat /var/log/pacman.log | grep installed
3. Установка локального пакета (если скачали .deb/.rpm/.pkg.tar.zst)
Debian/Ubuntu
sudo dpkg -i package.deb
В случае ошибок зависимостей:
sudo apt install -f
Fedora/RHEL
sudo rpm -ivh package.rpm
или:
sudo dnf install ./package.rpm
Arch Linux
sudo pacman -U package.pkg.tar.zst
Когда что использовать?
- apt — для Debian, Ubuntu, Mint, Astra Linux и всех их производных.
- dnf — для Fedora, RHEL, CentOS Stream, Rocky, Alma Linux.
- pacman — для Arch, Manjaro, EndeavourOS.
- zypper — для openSUSE.
Лайфхак:
Если вы совсем запутались, помните, что существуют старые версии менеджеров, такие как apt-get и yum (который считается устаревшим). Однако рекомендуется сразу привыкать к современным оберткам, таким как apt и dnf, для более эффективной и актуальной работы с системой.