Подробный гайд по APT: установка, обновление, удаление, работа, репозитории и очистка

Полный гайд по APT: установка, обновление, удаление пакетов, работа с зависимостями, версиями, репозиториями и очистка системы в Debian/Ubuntu.

2026.08.16                  


Подробный гайд по APT: установка, обновление, удаление, работа, репозитории и очисткаПодробный гайд по APT: установка, обновление, удаление, работа, репозитории и очистка Гайд по командам APT для управления пакетами в Debian/Ubuntu и производных. Я разобью его на блоки: обновление, установка, удаление, поиск, версии, зависимости, очистка, репозитории, диагностика и автоматизация.


Команды, которые меняют систему, обычно требуют sudo. Команды просмотра можно выполнять без sudo.


1. Что такое APT и какие утилиты относятся к нему

APT — это не одна команда, а набор инструментов вокруг пакетной системы Debian/Ubuntu.



Основные программы:

Утилита Назначение
apt Удобный пользовательский интерфейс: установка, удаление, обновление, поиск
apt-get Более низкоуровневая команда, хорошо подходит для скриптов и автоматизации
apt-cache Поиск и просмотр информации о пакетах из кэша APT
apt-mark Управление статусом пакета: авто/ручная установка, удержание версии
apt-config Просмотр конфигурации APT
dpkg Низкоуровневый менеджер .deb-пакетов
add-apt-repository Вспомогательная команда для добавления репозиториев, особенно PPA в Ubuntu

2. Быстрая шпаргалка

Действие Команда
Обновить список пакетов sudo apt update
Обновить установленные пакеты sudo apt upgrade
Полное обновление, включая зависимости sudo apt full-upgrade
Установить пакет sudo apt install package
Переустановить пакет sudo apt reinstall package
Удалить пакет без конфигов sudo apt remove package
Полностью удалить пакет с конфигами sudo apt purge package
Удалить ненужные зависимости sudo apt autoremove
Удалить зависимости и их конфиги sudo apt autoremove --purge
Найти пакет apt search keyword
Информация о пакете apt show package
Список установленных пакетов apt list --installed
Список доступных обновлений apt list --upgradable
Очистить кэш загруженных .deb sudo apt clean
Исправить сломанные зависимости sudo apt --fix-broken install

3. Обновление индексов пакетов

3.1. Базовое обновление индексов

Перед установкой или обновлением пакетов обычно выполняют:

sudo apt update

Эта команда не обновляет сами программы. Она скачивает свежие списки пакетов и метаданные из репозиториев.


3.2. Обновление с принятием изменений Release-информации

Иногда при обновлении дистрибутива или изменении репозитория APT может написать, что изменилась информация о релизе.

Тогда можно использовать:

sudo apt-get update --allow-releaseinfo-change

Используйте осознанно, особенно если меняете ветку дистрибутива, например stable, testing, unstable.


3.3. Посмотреть, какие пакеты можно обновить

apt list --upgradable

Более подробный вариант:

apt list --upgradable -a

3.4. Симуляция обновления

Перед реальным обновлением полезно посмотреть, что произойдёт:

apt upgrade -s

или:

apt-get upgrade --simulate

Флаг -s означает simulation: система ничего не меняет, только показывает план действий.


4. Обновление установленных пакетов

4.1. Обычное обновление

sudo apt upgrade

Обновляет установленные пакеты до новых версий, но обычно старается не удалять пакеты и не устанавливать новые без необходимости.


4.2. Полное обновление

sudo apt full-upgrade

или в стиле apt-get:

sudo apt-get dist-upgrade

Эта команда может:

  • обновлять пакеты;
  • устанавливать новые зависимости;
  • удалять конфликтующие или устаревшие пакеты.

Используйте внимательно, особенно на серверах.


4.3. Обновление конкретного пакета

sudo apt install --only-upgrade package

Пример:

sudo apt install --only-upgrade nginx

Если пакет не установлен, команда не будет его устанавливать. Она обновит его только если он уже есть.


4.4. Обновление с возможностью установки новых пакетов

Для apt-get:

sudo apt-get upgrade --with-new-pkgs

Полезно, если обновление установленного пакета требует новых зависимостей.


5. Установка пакетов

5.1. Простая установка

sudo apt install package

Пример:

sudo apt install htop

Установить несколько пакетов сразу:



sudo apt install curl wget git vim

5.2. Установка без рекомендованных пакетов

APT часто ставит не только зависимости, но и рекомендованные пакеты.

Чтобы этого избежать:

sudo apt install --no-install-recommends package

Пример:

sudo apt install --no-install-recommends nginx

Полезно для минимальных серверов, контейнеров и экономии места.


5.3. Установка с предлагаемыми пакетами

sudo apt install --install-suggests package

Обычно не нужно, потому что предложенные пакеты часто расширяют функциональность, но не являются обязательными.


5.4. Переустановка пакета

sudo apt reinstall package

Пример:

sudo apt reinstall curl

В стиле apt-get:

sudo apt-get --reinstall install curl

Полезно, если файлы пакета повреждены или случайно удалены.


5.5. Установка конкретной версии пакета

Сначала посмотрите доступные версии:

apt-cache madison package

Пример:

apt-cache madison nginx

Затем установите нужную:

sudo apt install package=version

Пример:

sudo apt install nginx=1.24.0-1

Если нужно понижение версии, может потребоваться:

sudo apt install --allow-downgrades package=version

5.6. Установка пакета из определённого релиза или ветки

Например, из stable, testing, unstable или из конкретного репозитория:

sudo apt install -t stable package

Пример:

sudo apt install -t bookworm package

Или:

sudo apt install package/testing

Будьте осторожны: такая установка может потянуть много зависимостей из другой ветки.


6. Удаление пакетов

6.1. Удаление пакета без конфигурационных файлов

sudo apt remove package

Пример:

sudo apt remove nginx

Пакет удаляется, но пользовательские и системные конфигурации обычно остаются.


6.2. Полное удаление пакета с конфигами

sudo apt purge package

Пример:

sudo apt purge nginx

Внимание:

purge может удалить конфигурационные файлы пакета. Перед этим полезно сделать резервную копию.


6.3. Удаление ненужных зависимостей

Когда вы удаляете программу, зависимости, которые устанавливались автоматически, могут остаться.

sudo apt autoremove

Удалить ненужные зависимости вместе с их конфигами:

sudo apt autoremove --purge

6.4. Полная чистка пакета и зависимостей

Часто используют такую последовательность:

sudo apt purge package
sudo apt autoremove --purge

Пример:

sudo apt purge nginx
sudo apt autoremove --purge

7. Поиск пакетов и просмотр информации

7.1. Поиск по ключевому слову

apt search keyword

Пример:

apt search nginx

Поиск по регулярному выражению:

apt search '^nginx'

7.2. Поиск только по именам пакетов

apt-cache search --names-only keyword

Пример:

apt-cache search --names-only nginx

7.3. Просмотр информации о пакете

apt show package

Пример:

apt show curl

Более технический вывод:

apt-cache show package

7.4. Посмотреть зависимости пакета

apt-cache depends package

Пример:

apt-cache depends nginx

Обратные зависимости, то есть какие пакеты зависят от этого:

apt-cache rdepends package

Пример:

apt-cache rdepends libssl3

7.5. Посмотреть доступные версии пакета

apt-cache madison package

Пример:

apt-cache madison firefox

7.6. Политика установки версии

Команда показывает, какая версия будет установлена и почему:

apt-cache policy package

Пример:

apt-cache policy nginx

В новых версиях APT также может работать:

apt policy package

7.7. Список пакетов

Все установленные пакеты:

apt list --installed

По шаблону:

apt list --installed 'nginx*'

Доступные обновления:

apt list --upgradable

Все версии пакета:



apt list --all-versions package

Пример:

apt list --all-versions curl

7.8. Changelog пакета

Посмотреть журнал изменений пакета:

apt changelog package

Пример:

apt changelog curl

Команда обычно скачивает changelog из репозитория и открывает его в pager.


8. Управление статусом установки: авто/ручная установка

APT различает пакеты, установленные вручную, и пакеты, установленные автоматически как зависимости. Это важно для autoremove.


8.1. Пометить пакет как установленный вручную

sudo apt-mark manual package

Пример:

sudo apt-mark manual linux-image-6.1.0-18-amd64

Полезно, если вы боитесь, что autoremove удалит нужный пакет.


8.2. Пометить пакет как установленный автоматически

sudo apt-mark auto package

Пример:

sudo apt-mark auto libexample1

После этого пакет может быть удалён через autoremove, если больше не нужен.


8.3. Посмотреть пакеты, установленные вручную

apt-mark showmanual

8.4. Посмотреть автоматически установленные пакеты

apt-mark showauto

9. Удержание версии пакета

9.1. Запретить обновление пакета

sudo apt-mark hold package

Пример:

sudo apt-mark hold nginx

После этого apt upgrade не будет обновлять пакет.


9.2. Снять удержание

sudo apt-mark unhold package

9.3. Посмотреть удерживаемые пакеты

apt-mark showhold

10. Работа с версиями и pinning

10.1. Посмотреть приоритеты версий

apt-cache policy package

Пример:

apt-cache policy nginx

Вывод покажет:

  • установленную версию;
  • кандидата на установку;
  • источники версий;
  • приоритеты.

10.2. Что означают приоритеты

Примерное значение приоритетов:

Приоритет Смысл
100 Обычно установленный пакет
500 Стандартный приоритет репозитория
990 Высокий приоритет
1001 и выше Разрешает понижение версии
-1 Запрещает установку версии

10.3. Файлы предпочтений APT

Можно создать файл в:

/etc/apt/preferences.d/

Пример файла:

sudo nano /etc/apt/preferences.d/nginx

Содержимое:

Package: nginx
Pin: version 1.24.0-1
Pin-Priority: 1001

Это заставит APT предпочитать указанную версию и при необходимости разрешит downgrade.

Пример запрета пакета из определённого репозитория:

Package: *
Pin: release o=SomeUntrustedRepo
Pin-Priority: -10

После изменений обычно выполняют:

sudo apt update

11. Исправление ошибок и зависимости

11.1. Проверка целостности кэша и зависимостей

sudo apt-get check

Если вывод пустой и ошибок нет — всё нормально.


12.2. Исправление сломанных зависимостей

sudo apt --fix-broken install

или:

sudo apt-get -f install

Эту команду часто используют после неудачной установки .deb-пакета.


11.3. Восстановление состояния dpkg

Если установка пакета прервалась:

sudo dpkg --configure -a

Затем:

sudo apt --fix-broken install

11.4. Проверка состояния пакетов через dpkg

sudo dpkg --audit

Полезно при подозрении на повреждённые или наполовину настроенные пакеты.


12. Очистка кэша и освобождение места

12.1. Удалить все загруженные .deb-файлы

APT хранит скачанные пакеты в:

/var/cache/apt/archives/

Очистить полностью:

sudo apt clean

12.2. Удалить только устаревшие .deb-файлы

sudo apt autoclean

Эта команда удаляет только те пакеты, которые уже недоступны в текущих репозиториях.


12.3. Посмотреть, сколько места занимает кэш APT

du -sh /var/cache/apt/archives

12.4. Удалить конфиги удалённых, но не вычищенных пакетов

Иногда пакет удалён через remove, но его конфиги остались. В dpkg такие пакеты могут иметь статус rc.

Посмотреть список:

dpkg -l | awk '/^rc/{print $2}'


Удалить их конфиги:

dpkg -l | awk '/^rc/{print $2}' | xargs -r sudo apt-get purge -y

13. Загрузка пакетов без установки

13.1. Скачать .deb-файл пакета

apt download package

Пример:

apt download curl

Файл скачается в текущую директорию.


13.2. Скачать пакет через apt-get

apt-get download package

13.3. Скачать зависимости без установки

Можно использовать:

apt-get install --download-only package

Пример:

apt-get install --download-only nginx

13.4. Показать URL-адреса пакетов

apt-get install --print-uris package

Пример:

apt-get install --print-uris curl

Полезно для офлайн-загрузки или анализа источников.


14. Установка локальных .deb-пакетов

14.1. Установка .deb через dpkg

sudo dpkg -i package.deb

Пример:

sudo dpkg -i google-chrome-stable_current_amd64.deb

14.2. Если не хватает зависимостей

После dpkg -i может появиться ошибка зависимостей.

Тогда выполните:

sudo apt --fix-broken install

или:

sudo apt-get -f install

14.3. Просмотр содержимого .deb

Посмотреть информацию:

dpkg-deb --info package.deb

Посмотреть файлы внутри:

dpkg-deb --contents package.deb

15. Исходные коды и зависимости для сборки

15.1. Включить исходные репозитории

В файлах источников должны быть строки deb-src. Например, в Debian/Ubuntu они могут быть закомментированы.

После включения:

sudo apt update

15.2. Скачать исходный код пакета

apt-get source package

Пример:

apt-get source curl

15.3. Установить зависимости для сборки пакета

sudo apt-get build-dep package

Пример:

sudo apt-get build-dep curl

16. Работа с установленными файлами пакетов

16.1. Список установленных пакетов через dpkg

dpkg -l

Поиск пакета:

dpkg -l | grep nginx

16.2. Информация об установленном пакете

dpkg -s package

Пример:

dpkg -s curl

16.3. Список файлов, установленных пакетом

dpkg -L package

Пример:

dpkg -L curl

16.4. Узнать, какому пакету принадлежит файл

dpkg -S /path/to/file

Пример:

dpkg -S /usr/bin/curl

16.5. Поиск файла в ещё не установленных пакетах

Для этого удобно использовать apt-file.

Установка:

sudo apt install apt-file
sudo apt-file update

Поиск:

apt-file search filename

Пример:

apt-file search libexample.so

17. Управление репозиториями

17.1. Основные файлы источников

Главный файл:

/etc/apt/sources.list

Дополнительные источники:

/etc/apt/sources.list.d/

Там могут быть файлы:

  • *.list — старый формат;
  • *.sources — новый формат DEB822.

17.2. Обновить репозитории после изменения источников

sudo apt update

17.3. Добавление PPA в Ubuntu

sudo add-apt-repository ppa:user/ppa-name

Пример:

sudo add-apt-repository ppa:graphics-drivers/ppa

Удаление PPA:

sudo add-apt-repository --remove ppa:user/ppa-name

17.4. Добавление компонента репозитория в Ubuntu

Например:

sudo add-apt-repository universe
sudo add-apt-repository multiverse

17.5. Современный подход к ключам репозиториев

Раньше часто использовали apt-key, но сейчас этот способ считается устаревшим.

Лучше хранить ключи отдельно, например:

/etc/apt/keyrings/

Пример добавления ключа:

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://example.com/repo.gpg | sudo tee /etc/apt/keyrings/example.gpg > /dev/null
sudo chmod 644 /etc/apt/keyrings/example.gpg

Затем в источнике указывают:

signed-by=/etc/apt/keyrings/example.gpg

Пример современного .sources-файла:

Types: deb
URIs: https://repo.example.com/debian
Suites: stable
Components: main
Signed-By: /etc/apt/keyrings/example.gpg



18. История операций APT и dpkg

18.1. История APT

less /var/log/apt/history.log

18.2. История dpkg

less /var/log/dpkg.log

18.3. Посмотреть недавние установки и удаления

grep -E 'install|upgrade|remove|purge' /var/log/apt/history.log | less

19. Полезные флаги и режимы

19.1. Симуляция

apt install -s package

или:

apt-get install --simulate package

19.2. Автоматическое подтверждение

sudo apt install -y package

Используйте осторожно, особенно в скриптах.


19.3. Не выполнять действие автоматически

apt-get install --assume-no package

19.4. Тихий режим

sudo apt-get -q update

19.5. Не устанавливать рекомендованные пакеты

sudo apt-get install --no-install-recommends package

19.6. Только обновить, не устанавливать новый пакет

sudo apt-get install --only-upgrade package

19.7. Разрешить понижение версии

sudo apt-get install --allow-downgrades package=version

19.8. Разрешить изменение удерживаемых пакетов

sudo apt-get install --allow-change-held-packages package

20. Автоматизация и скрипты

Для скриптов лучше использовать apt-get, а не apt, потому что вывод и поведение apt могут меняться между версиями.

Пример безопасного обновления в скрипте:

sudo apt-get update -q
sudo DEBIAN_FRONTEND=noninteractive apt-get -y \
  -o Dpkg::Options::="--force-confdef" \
  -o Dpkg::Options::="--force-confold" \
  upgrade

Для полного обновления:

sudo apt-get update -q
sudo DEBIAN_FRONTEND=noninteractive apt-get -y \
  -o Dpkg::Options::="--force-confdef" \
  -o Dpkg::Options::="--force-confold" \
  dist-upgrade

Пояснение:

  • DEBIAN_FRONTEND=noninteractive — не задавать вопросы;
  • --force-confdef — использовать действие по умолчанию для конфигов;
  • --force-confold — сохранять старые конфигурационные файлы при конфликте.

20.1. Автоматические обновления безопасности

В Debian/Ubuntu можно использовать unattended-upgrades.

Установка:

sudo apt install unattended-upgrades

Настройка:

sudo dpkg-reconfigure -plow unattended-upgrades

21. Частые проблемы и решения

21.1. E: Unable to locate package ...

Возможные причины:

  • вы не выполнили apt update;
  • опечатка в имени пакета;
  • пакет отсутствует в подключённых репозиториях;
  • репозиторий не подходит для вашей версии дистрибутива.

Решение:

sudo apt update
apt search package
apt-cache policy package

21.2. Сломанные зависимости

sudo dpkg --configure -a
sudo apt --fix-broken install

Если не помогает:

sudo apt-get check
sudo apt-get -f install

21.3. Пакет удержан и не обновляется

Проверить:

apt-mark showhold

Снять:

sudo apt-mark unhold package

21.4. Блокировка APT/dpkg

Обычно блокировка означает, что другой процесс уже работает с пакетами.

Проверить процессы:

ps aux | grep -E 'apt|dpkg'

Посмотреть, кто держит блокировку:

sudo lsof /var/lib/dpkg/lock-frontend

Удалять lock-файлы вручную стоит только если вы уверены, что ни один процесс apt или dpkg не работает.


21.5. Ошибка NO_PUBKEY

Не добавляйте ключи через устаревший apt-key, если можно этого избежать.

Правильный современный путь:

  1. Скачать ключ в /etc/apt/keyrings/.
  2. Указать его через signed-by в источнике.

3. Выполнить:

sudo apt update

21.6. Не хватает места в /var/cache/apt/archives

Очистить кэш:

sudo apt clean

Проверить место:

df -h
du -sh /var/cache/apt/archives

21.7. autoremove хочет удалить что-то важное

Сначала посмотрите, что будет удалено:

sudo apt autoremove -s

Если пакет нужен, пометьте его как установленный вручную:



sudo apt-mark manual package

22. Практические сценарии

22.1. Безопасное регулярное обновление

sudo apt update
apt list --upgradable
sudo apt upgrade -s
sudo apt upgrade

22.2. Установка минимального набора пакетов

sudo apt update
sudo apt install --no-install-recommends curl ca-certificates wget
sudo apt autoremove --purge
sudo apt clean

22.3. Полное удаление программы

sudo apt purge package
sudo apt autoremove --purge
sudo apt clean

22.4. Установить конкретную версию и зафиксировать её

apt-cache madison package
sudo apt install package=version
sudo apt-mark hold package

22.5. Исправить систему после неудачной установки .deb

sudo dpkg --configure -a
sudo apt --fix-broken install
sudo apt update
sudo apt upgrade

23. Дополнительные полезные утилиты

23.1. aptitude

aptitude — альтернативный интерфейс к APT. Он может быть полезен для сложных конфликтов зависимостей.

Установка:

sudo apt install aptitude

Примеры:

aptitude search nginx
aptitude show nginx
sudo aptitude install nginx
sudo aptitude safe-upgrade
sudo aptitude full-upgrade

Особенно полезны команды:

aptitude why package
aptitude why-not package

Они объясняют, почему пакет установлен или почему нельзя установить нужную версию.


23.2. apt-file

Позволяет искать, в каком пакете находится файл.

sudo apt install apt-file
sudo apt-file update
apt-file search libexample.so

23.3. dpkg-reconfigure

Позволяет заново настроить уже установленный пакет.

sudo dpkg-reconfigure package

Пример:

sudo dpkg-reconfigure tzdata

24. Что когда лучше использовать

Ситуация Лучший вариант
Обычная установка apt install
Обычное удаление apt remove или apt purge
Обновление списков apt update
Обычное обновление apt upgrade
Обновление с возможной заменой пакетов apt full-upgrade
Скрипты apt-get
Поиск пакета apt search, apt-cache search
Информация о версии apt-cache policy, apt-cache madison
Фиксация версии apt-mark hold, /etc/apt/preferences.d/
Ремонт зависимостей apt --fix-broken install, dpkg --configure -a
Локальный .deb dpkg -i, затем apt --fix-broken install
Очистка места apt clean, apt autoremove --purge

25. Минимальный набор команд, который стоит запомнить

sudo apt update
sudo apt upgrade
sudo apt full-upgrade
sudo apt install package
sudo apt remove package
sudo apt purge package
sudo apt autoremove --purge
apt search package
apt show package
apt list --installed
apt list --upgradable
sudo apt --fix-broken install
sudo apt clean
sudo apt-mark hold package
sudo apt-mark unhold package
apt-cache policy package

Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта