В Ubuntu и Debian программы ставятся из репозиториев через apt. Пакетный менеджер сам разрешает зависимости и обновляет всё одной командой — поэтому ставить софт из архивов вручную стоит только тогда, когда пакета действительно нет.
Основные команды
| Задача | Команда |
|---|---|
| Обновить списки пакетов | apt update |
| Обновить установленное | apt upgrade |
| Найти пакет | apt search nginx |
| Описание и версия | apt show nginx |
| Установить | apt install nginx |
| Удалить вместе с настройками | apt purge nginx |
| Убрать ненужные зависимости | apt autoremove |
upgrade и full-upgrade
apt upgrade не удаляет пакеты, поэтому часть обновлений может остаться отложенной (kept back). apt full-upgrade разрешает удаление и установку, если это нужно для обновления, — например, при смене зависимостей ядра.
$ apt update$ apt list --upgradable$ apt full-upgradeНужна ли перезагрузка
После обновления ядра или системных библиотек может появиться файл-флаг:
$ ls /var/run/reboot-required 2>/dev/null && cat /var/run/reboot-required.pkgsЕсли файл существует — запланируйте перезагрузку. На Debian 12 флаг создаётся не всегда; надёжнее поставить пакет needrestart — после обновления он сам подскажет, какие службы перезапустить и нужна ли перезагрузка.
Удержать версию
Чтобы пакет не обновлялся (например, вы проверяете совместимость новой версии), поставьте его на удержание:
$ apt-mark hold postgresql-16$ apt-mark showhold$ apt-mark unhold postgresql-16Сторонние репозитории
Добавляйте только официальные репозитории разработчиков (Docker, PostgreSQL, Node.js) по их инструкции. Современный способ — ключ в /etc/apt/keyrings и опция signed-by в описании источника, а не устаревший apt-key.
$ ls /etc/apt/sources.list.d/$ grep -r signed-by /etc/apt/sources.list.d/Что установлено
$ dpkg -l | grep nginx$ apt list --installed 2>/dev/null | wc -l$ dpkg -S /usr/sbin/nginxПоследняя команда отвечает на вопрос «из какого пакета этот файл».
Частые ошибки
- «Could not get lock /var/lib/dpkg/lock-frontend» — параллельно работает другой apt, чаще всего автообновления. Подождите несколько минут; не удаляйте lock-файлы вручную.
- Прерванная установка — выполните
dpkg --configure -a, затемapt install -f. - Ошибка подписи репозитория (NO_PUBKEY) — ключ стороннего репозитория устарел. Скачайте актуальный по инструкции разработчика.