Linux: установка и обновление пакетов

apt и dpkg для Debian и Ubuntu, dnf и rpm для RHEL, Fedora и производных

apt: Debian и Ubuntu

КомандаВариантЧто делает
apt updatesudo apt updateОбновить список пакетов из репозиториев (не сами пакеты).
apt upgradesudo apt upgrade -yОбновить установленные пакеты, не удаляя другие.
apt full-upgradesudo apt full-upgradeОбновление с установкой и удалением пакетов при необходимости.
apt installsudo apt install -y htop curlУстановить несколько пакетов.
apt install --no-install-recommendssudo apt install --no-install-recommends -y nginxБез рекомендуемых пакетов (меньше мусора на сервере).
apt install pkg=sudo apt install nginx=1.24.0-2ubuntu7Конкретная версия (должна быть в репозитории).
apt install -tsudo apt install -t bookworm-backports nginxИз другого релиза или backports.
apt reinstallsudo apt reinstall openssh-serverПереустановить пакет (восстановить повреждённые файлы).
apt removesudo apt remove nginxУдалить, оставив конфиги.
apt purgesudo apt purge nginxУдалить вместе с конфигурацией.
apt autoremovesudo apt autoremove --purge -yУдалить зависимости, которые больше никому не нужны.
apt cleansudo apt cleanОчистить кеш загруженных .deb.
apt autocleansudo apt autocleanУдалить кеш устаревших версий.
apt searchapt search "web server" | headПоиск по описанию и имени.
apt showapt show nginxПодробная информация: версия, зависимости, описание.
apt list --installedapt list --installed | grep nginxУстановленные пакеты.
apt list --upgradableapt list --upgradableЧто можно обновить.
apt-cache policyapt-cache policy nginxУстановленная и доступная версии, источник.
apt-mark holdsudo apt-mark hold docker-ceЗапретить обновление пакета.
apt-mark unholdsudo apt-mark unhold docker-ceСнять запрет.
apt-mark showmanualapt-mark showmanualПакеты, которые вы ставили сами (не зависимости).
apt changelogapt changelog nginx | headЖурнал изменений пакета.
apt -ssudo apt -s upgradeСимуляция (-s): показать, что будет сделано, ничего не меняя.
apt-fileapt-file search bin/digКакой пакет содержит файл (пакет apt-file, сначала apt-file update).

dpkg: работа с .deb напрямую

КомандаВариантЧто делает
dpkg -isudo dpkg -i tool.debУстановить локальный .deb (зависимости потом: apt -f install).
apt -f installsudo apt -f installДоставить недостающие зависимости после dpkg -i.
dpkg -ldpkg -l | grep nginxСписок пакетов и их состояние (ii — установлен).
dpkg -Ldpkg -L nginxФайлы, которые пакет установил.
dpkg -Sdpkg -S /usr/bin/digКакому пакету принадлежит файл.
dpkg -sdpkg -s nginxСтатус и описание установленного пакета.
dpkg --configure -asudo dpkg --configure -aДоделать прерванную установку.
dpkg -rsudo dpkg -r nginxУдалить (как apt remove, без зависимостей).
dpkg -Psudo dpkg -P nginxУдалить с конфигурацией (как purge).

dnf и yum: RHEL, Fedora, Rocky, AlmaLinux

КомандаВариантЧто делает
dnf check-updatesudo dnf check-updateПроверить доступные обновления (аналог apt update + list).
dnf upgradesudo dnf upgrade --refresh -yОбновить всё, сначала обновив кеш метаданных.
dnf upgrade --securitysudo dnf upgrade --security -yТолько обновления безопасности.
dnf installsudo dnf install -y htopУстановить пакет.
dnf install (version)sudo dnf install nginx-1.24.0Конкретная версия, если доступна.
dnf reinstallsudo dnf reinstall openssh-serverПереустановить.
dnf removesudo dnf remove nginxУдалить пакет и не нужные зависимости.
dnf autoremovesudo dnf autoremoveУдалить сиротские зависимости.
dnf searchdnf search "web server"Поиск пакетов.
dnf infodnf info nginxПодробности о пакете.
dnf providesdnf provides */bin/digКакой пакет даёт нужный файл.
dnf list installeddnf list installed | grep nginxУстановленные пакеты.
dnf historysudo dnf historyЖурнал транзакций.
dnf history undosudo dnf history undo 42Откатить транзакцию с номером 42.
dnf group installsudo dnf group install "Development Tools"Установить группу пакетов.
dnf versionlocksudo dnf versionlock add nginxЗафиксировать версию (пакет python3-dnf-plugin-versionlock).
dnf clean allsudo dnf clean allОчистить кеш.
dnf config-managersudo dnf config-manager --set-enabled crbВключить репозиторий.
yumyum updateНа старых системах; на современных yum — ссылка на dnf.

rpm: работа с пакетами RPM напрямую

КомандаВариантЧто делает
rpm -qarpm -qa | grep nginxВсе установленные пакеты.
rpm -qirpm -qi nginxИнформация о пакете.
rpm -qlrpm -ql nginxФайлы пакета.
rpm -qfrpm -qf /usr/bin/digКакой пакет владеет файлом.
rpm -qcrpm -qc nginxФайлы конфигурации пакета.
rpm -ivhsudo rpm -ivh tool.rpmУстановить локальный RPM.
rpm -Uvhsudo rpm -Uvh tool-2.rpmОбновить или установить.
rpm -esudo rpm -e nginxУдалить без учёта зависимостей (осторожно).
rpm -Vrpm -V nginxПроверить, менялись ли файлы пакета после установки.
rpm --importsudo rpm --import RPM-GPG-KEYИмпортировать ключ подписи перед установкой стороннего пакета.

Другие менеджеры

КомандаВариантЧто делает
snapsnap list ; sudo snap install htopПакеты snap (Ubuntu).
snap refreshsudo snap refreshОбновить все snap-пакеты.
flatpakflatpak list ; flatpak updateПакеты flatpak (больше для десктопа).
pippip install --user httpiePython-пакеты в домашнюю папку, без системного вмешательства.
pipxpipx install ansible-lintИзолированная установка Python-утилит.

Типовой сценарий: обновить сервер безопасно

# Debian / Ubuntu
sudo apt update
apt list --upgradable
sudo apt -s upgrade                  # симуляция
sudo apt upgrade -y
sudo apt autoremove --purge -y
[ -f /var/run/reboot-required ] && echo "нужна перезагрузка"

# RHEL / Rocky / Alma
sudo dnf upgrade --refresh -y
sudo dnf history list | head
sudo needs-restarting -r             # нужна ли перезагрузка (пакет dnf-utils)
Обновление всех пакетов на продакшене без проверки может сломать приложение: например, новая версия библиотеки или нового PHP. Сначала обновляйте на тестовом сервере, смотрите apt -s upgrade или dnf check-update, а затем планируйте окно обслуживания и держите apt-mark hold или versionlock для критичных пакетов.
Если после обновления что-то сломалось на RHEL-системе, посмотрите dnf history и откатите нужную транзакцию через dnf history undo. На Debian откат сложнее, поэтому для него полезны снапшоты виртуальной машины или файловой системы.