Коротко о главном
APT управляет пакетами в Debian, Ubuntu, Mint и производных дистрибутивах. Он разрешает зависимости, проверяет подписи и ведёт базу установленного через dpkg. Понимание apt помогает не только ставить программы, но и диагностировать конфликты и откатывать изменения. Разберём источники, обновление, поиск, закрепление версий и обслуживание.
APT даёт предсказуемый способ установки ПО из проверенных репозиториев. Он умеет разрешать зависимости и объяснять, что будет изменено до подтверждения. Журнал операций позволяет понять, когда и почему изменилась система. Эти навыки нужны каждому, кто администрирует Debian-подобные машины.
APT выглядит простым снаружи, но именно детали определяют поведение под нагрузкой. Посмотрим на внутреннее устройство и тонкие настройки.
Как это устроено
APT состоит из нескольких взаимодействующих частей: конфигурации, рабочего процесса и данных, с которыми он работает. Понимание этой схемы помогает предсказывать поведение системы и быстрее находить причину сбоя.
APT даёт предсказуемый способ установки ПО из проверенных репозиториев. Он умеет разрешать зависимости и объяснять, что будет изменено до подтверждения. Журнал операций позволяет понять, когда и почему изменилась система. Эти навыки нужны каждому, кто администрирует Debian-подобные машины. Именно поэтому настройка через переменные окружения и конфигурационные файлы предпочтительнее ручных правок «на месте».
Разбор конфигурации
Начните с минимального рабочего варианта. Не копируйте большой конфиг целиком: добавляйте параметры по одному и проверяйте результат после каждого изменения.
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Install-Recommends "1";
APT::Install-Suggests "0";
Ключевые компоненты и их взаимодействие
1. Update, upgrade и full-upgrade
apt update обновляет индекс пакетов, но не ставит их. apt upgrade устанавливает новые версии, не удаляя пакеты, а full-upgrade может разрешать более сложные изменения. Выбирайте команду осознанно, особенно на сервере.
sudo apt update
apt list --upgradable
sudo apt full-upgrade
2. Источники пакетов
Список репозиториев хранится в /etc/apt/sources.list и каталоге sources.list.d. Современный формат deb822 описывает источник в отдельном файле. После правки всегда выполняйте apt update.
ls /etc/apt/sources.list.d/
cat /etc/apt/sources.list.d/*.sources
sudo apt update
3. Поиск и информация о пакете
apt search ищет по имени и описанию, apt show выводит зависимости и версию. apt policy показывает доступные версии и приоритеты источников. Эти команды помогают понять, откуда придёт пакет.
apt search image editor
apt show gimp
apt policy firefox
4. Закрепление версий
Pinning позволяет выбрать версию пакета из конкретного репозитория. Правила задаются в файле preferences в каталоге apt.conf.d или preferences.d. Это полезно, когда нужна версия из backports, но не вся ветка.
sudo tee /etc/apt/preferences.d/pin.pref > /dev/null <<'EOF'
Package: *
Pin: release a=bookworm-backports
Pin-Priority: 100
EOF
apt policy gimp
5. Очистка и удаление
autoremove удаляет зависимости, которые больше не нужны, а purge — вместе с конфигурацией. apt clean освобождает кэш скачанных пакетов. Перед очисткой проверьте список удаляемого.
sudo apt autoremove --purge
sudo apt clean
sudo du -sh /var/cache/apt/archives
6. Журнал и диагностика
История операций хранится в /var/log/apt/history.log, а подробности — в term.log. dpkg -l показывает состояние пакетов, а dpkg -S ищет владельца файла. Эти данные помогают восстановить последовательность изменений.
tail -n 30 /var/log/apt/history.log
dpkg -l | grep ^ii | wc -l
dpkg -S /usr/bin/apt
Диагностика и тонкая настройка
Начинайте с журналов и проверки версии. Затем изолируйте проблему: конфигурация, права доступа, сеть или данные. Не меняйте несколько параметров одновременно — иначе невозможно понять, что именно помогло.
Практические советы
Эти рекомендации проверены на повседневных задачах. Начните с тех, которые закрывают вашу текущую боль, а не со всего списка сразу.
Совет 1. Читайте список изменений перед подтверждением: apt показывает, что буд
Читайте список изменений перед подтверждением: apt показывает, что будет удалено.
Совет 2. Используйте apt, а не apt-get, в интерактивной работе: вывод удобнее.
Используйте apt, а не apt-get, в интерактивной работе: вывод удобнее.
Совет 3. Для скриптов предпочтительнее apt-get с явными флагами.
Для скриптов предпочтительнее apt-get с явными флагами.
Совет 4. Проверяйте источники через apt policy, если версия пакета не совпадает
Проверяйте источники через apt policy, если версия пакета не совпадает с ожидаемой.
Совет 5. Не смешивайте репозитории разных выпусков без pinning: это частая прич
Не смешивайте репозитории разных выпусков без pinning: это частая причина поломок.
Типичные ошибки
Ниже — сбои, которые встречаются чаще всего. Перед исправлением сохраните текущие конфиги и запишите, какие изменения вносите: так проще откатиться.
1. dpkg был прерван и требует настройки
Выполните sudo dpkg —configure -a, затем sudo apt —fix-broken install. Если ошибка повторяется, изучите вывод конкретного пакета.
2. Неразрешённые зависимости после удаления пакета
Запустите sudo apt —fix-broken install и проверьте, не отключён ли нужный репозиторий. При необходимости верните пакет командой apt install.
3. Репозиторий сообщает об истёкшем ключе
Обновите ключ по инструкции проекта и проверьте срок действия. Не отключайте проверку подписей ради обхода ошибки.
Что улучшить после базовой настройки
Когда APT работает предсказуемо, следующий шаг — наблюдаемость. Добавьте проверку состояния, которая отвечает на вопрос «жив ли сервис», и метрику, показывающую нагрузку. Без этого вы узнаёте о проблеме от пользователей, а не от системы.
Второе направление — воспроизводимость. Опишите установку и конфигурацию так, чтобы их можно было повторить на чистой машине: список пакетов, файлы настроек, порядок команд. Это одновременно документация, план восстановления и основа для автоматизации.
Не оптимизируйте то, что не измеряли. Сначала соберите базовые показатели, затем меняйте один параметр и сравнивайте результат. Иначе легко получить конфигурацию, которая выглядит сложнее, но работает не быстрее.
Итог
Понимание внутреннего устройства APT экономит часы диагностики. Когда знаете, где хранится состояние и как компоненты общаются, ошибка перестаёт быть «магией».