Программы в Linux устанавливаются из репозиториев с помощью пакетного менеджера. Он сам скачивает пакет, ставит зависимости, обновляет и удаляет программы. В разных семействах дистрибутивов менеджеры разные, но задачи у них одни и те же. Разберём три основных:
Команды проверены для Ubuntu 22.04/24.04, Debian 12/13, Fedora 41 и новее (DNF5), RHEL 9/10 и родственных (DNF 4) и Arch Linux.
- APT - Debian, Ubuntu, Linux Mint и производные, пакеты
.deb; - DNF - Fedora, RHEL, Rocky Linux, AlmaLinux, CentOS Stream, пакеты
.rpm. Он заменил YUM: в современных системах командаyum- просто ссылка наdnf, а старые инструкции сyumработают с теми же ключами; - Pacman - Arch Linux, Manjaro и производные.
Все команды, которые что-то меняют, выполняются через sudo.
Сравнительная таблица

| Задача | APT | DNF | Pacman |
|---|---|---|---|
| Обновить список пакетов | apt update |
dnf check-update |
pacman -Sy |
| Обновить систему | apt upgrade |
dnf upgrade |
pacman -Syu |
| Установить | apt install пакет |
dnf install пакет |
pacman -S пакет |
| Удалить | apt remove пакет |
dnf remove пакет |
pacman -R пакет |
| Удалить с настройками и зависимостями | apt purge пакет, apt autoremove |
dnf remove пакет, dnf autoremove |
pacman -Rns пакет |
| Поиск | apt search слово |
dnf search слово |
pacman -Ss слово |
| Информация о пакете | apt show пакет |
dnf info пакет |
pacman -Si пакет |
| Установленные пакеты | apt list --installed |
dnf list --installed |
pacman -Q |
| Файлы пакета | dpkg -L пакет |
rpm -ql пакет |
pacman -Ql пакет |
| Какому пакету принадлежит файл | dpkg -S /путь |
rpm -qf /путь |
pacman -Qo /путь |
| Какой пакет даёт команду или файл | apt-file search имя |
dnf provides имя |
pacman -F имя |
| Установить локальный файл | apt install ./файл.deb |
dnf install ./файл.rpm |
pacman -U файл.pkg.tar.zst |
| Очистить кэш | apt clean |
dnf clean all |
pacman -Sc |
APT
sudo apt update # обновить списки пакетов из репозиториев
sudo apt upgrade # обновить установленные пакеты
sudo apt full-upgrade # обновить с удалением и заменой пакетов, если нужно
sudo apt install nginx curl # установить несколько пакетов
sudo apt remove nginx # удалить, оставив настройки
sudo apt purge nginx # удалить вместе с настройками
sudo apt autoremove # удалить зависимости, которые больше не нужны
apt search "web server"
apt show nginx
apt list --upgradable # что можно обновить
apt-cache policy nginx # установленная и доступные версии, из каких репозиториев
apt update нужно запускать перед установкой и обновлением, иначе APT будет искать пакеты по устаревшим спискам.
Установить конкретную версию: sudo apt install nginx=<версия> (список версий показывает apt-cache policy).
Запретить обновление пакета:
sudo apt-mark hold nginx
sudo apt-mark unhold nginx
apt-mark showhold
Репозитории описаны в /etc/apt/sources.list и файлах в /etc/apt/sources.list.d/ (в новых выпусках - в формате .sources). Ключи сторонних репозиториев кладут в /etc/apt/keyrings/ и указывают в описании репозитория параметром signed-by.
Низкоуровневый инструмент - dpkg: работает с отдельными файлами .deb и не разрешает зависимости. Если после dpkg -i не хватает зависимостей, выполните sudo apt -f install, но проще сразу ставить файл через apt install ./файл.deb.
DNF
sudo dnf check-update # какие обновления доступны
sudo dnf upgrade # обновить систему
sudo dnf install nginx
sudo dnf remove nginx
sudo dnf autoremove
dnf search nginx
dnf info nginx
dnf list --installed
dnf provides /usr/bin/dig # какой пакет даёт файл
dnf repolist # подключённые репозитории
У DNF есть группы пакетов - наборы программ для определённой задачи:
dnf group list
sudo dnf group install "Development Tools"
История и откат
DNF записывает каждую операцию и умеет её отменить:
dnf history # список операций
dnf history info 42 # что было сделано в операции 42
sudo dnf history undo 42 # отменить её
Это удобно, если обновление что-то сломало.
Закрепление версии
sudo dnf install 'dnf-command(versionlock)'
sudo dnf versionlock add nginx
sudo dnf versionlock list
sudo dnf versionlock delete nginx
В новых версиях DNF (DNF5) команда versionlock встроена, и первую строку можно пропустить. Можно и просто исключить пакет из обновлений параметром exclude=nginx* в /etc/dnf/dnf.conf.
Репозитории
Описания репозиториев лежат в /etc/yum.repos.d/ (название папки сохранилось со времён YUM). Подключить и отключить репозиторий:
sudo dnf config-manager --set-enabled crb
sudo dnf config-manager --set-disabled имя
В DNF5 синтаксис другой: sudo dnf config-manager setopt crb.enabled=1. DNF5 работает в Fedora 41 и новее, а в RHEL 9 и 10 и родственных пока DNF 4. Какая версия у вас, покажет dnf --version.
В RHEL и родственных дистрибутивах многие популярные программы находятся в дополнительном репозитории EPEL: sudo dnf install epel-release.
Низкоуровневый инструмент - rpm: rpm -qa (все пакеты), rpm -qi пакет (информация), rpm -ql пакет (файлы), rpm -qf /путь (чей файл).
Pacman
У Pacman короткие ключи: -S - синхронизация с репозиторием (установка), -R - удаление, -Q - запросы к установленным пакетам.
sudo pacman -Syu # обновить систему целиком
sudo pacman -S nginx # установить
sudo pacman -Rns nginx # удалить вместе с ненужными зависимостями и настройками
pacman -Ss nginx # искать в репозиториях
pacman -Qs nginx # искать среди установленных
pacman -Qi nginx # информация об установленном пакете
pacman -Qdt # «сироты» - зависимости, которые больше не нужны
sudo pacman -Rns $(pacman -Qdtq) # удалить всех «сирот»
В Arch не делают частичных обновлений: не ставьте новые пакеты командой pacman -Sy пакет без полного обновления системы. Правильно - pacman -Syu пакет или сначала pacman -Syu.
Закрепить пакет от обновления - параметр IgnorePkg = nginx в /etc/pacman.conf.
Программы из пользовательского репозитория AUR ставятся отдельно, сборкой из исходников через makepkg или помощниками AUR. Пакеты в AUR не проверяются разработчиками Arch, поэтому перед установкой стоит прочитать файл сборки PKGBUILD.
Другие менеджеры и универсальные форматы

- Zypper - openSUSE:
zypper refresh,zypper update,zypper install,zypper remove,zypper search. - APK - Alpine Linux, популярен в контейнерах:
apk update,apk add,apk del. - Flatpak и Snap - универсальные форматы, которые работают в разных дистрибутивах и содержат программу вместе с зависимостями. Удобны для настольных программ, когда нужна версия новее, чем в репозитории дистрибутива. Обновляются отдельно:
flatpak update,snap refresh.





Комментарии
Комментариев пока нет - будьте первым.