apt / apt-get (Debian/Ubuntu)
Тема дорожной карты · Linux & Unix Fundamentals
apt и apt-get — это высокоуровневые менеджеры пакетов, используемые в Debian-подобных системах. Они представляют собой надстройку над dpkg и библиотекой APT, которая обеспечивает удобное управление пакетами. Эти инструменты позволяют пользователям эффективно управлять установкой, обновлением и удалением программного обеспечения, а также контролировать зависимости между пакетами. Использование apt и apt-get значительно упрощает процесс управления пакетами, обеспечивая стабильность и целостность системы.
Основные команды apt и apt-get включают apt update для обновления метаданных, apt install для установки пакетов, apt upgrade для обновления всех установленных пакетов, apt full-upgrade для выполнения полного обновления системы, apt remove и apt purge для удаления пакетов. Важно отметить, что источники пакетов описаны в файлах /etc/apt/sources.list и /etc/apt/sources.list.d/, а ключи подписей находятся в /etc/apt/keyrings. В скриптах лучше использовать apt-get с параметром DEBIAN_FRONTEND=noninteractive, так как у apt нет стабильного CLI по мнению его авторов. Команда apt-cache policy помогает разобраться с pinning и приоритетами репозиториев.
Как это работает
apt и apt-get функционируют в качестве высокоуровневых надстроек над dpkg и библиотекой APT. Они обеспечивают удобное управление пакетами и позволяют пользователям легко управлять установкой, обновлением и удалением программного обеспечения. Эти инструменты автоматически управляют зависимостями между пакетами, что обеспечивает целостность системы. Источники пакетов описаны в файлах /etc/apt/sources.list и /etc/apt/sources.list.d/, а ключи подписей находятся в /etc/apt/keyrings.
Когда применять
apt и apt-get следует использовать в Debian-подобных системах для управления пакетами. Они обеспечивают корректную обработку зависимостей, целостность и путь обновления. В случае необходимости установки self-contained приложения вне дерева дистрибутива, можно использовать Snap или Flatpak. Язык-специфичные менеджеры пакетов, такие как pip, gem, cargo и pnpm, следует использовать внутри перепроектных виртуальных окружений, а не глобально на системе с общим доступом. В production среде важно закреплять версии ОС, а major-апгрейды следует проводить по расписанию, а не внезапно.
Типичные ошибки
Типичные ошибки при использовании apt и apt-get включают выполнение команды apt upgrade без предварительного чтения изменений, что может привести к нежелательным последствиям, таким как обновление ядра, которое может сломать модули. Другая распространенная ошибка — смешивание apt и pip install для одной Python-библиотеки, что может привести к проблемам с зависимостями. Также не стоит доверять случайным PPA, так как один скомпрометированный PPA может привести к получению root-доступа на каждом сервере. Использование параметра force-yes в production среде может привести к нежелательным последствиям. Всегда выполняйте снапшот или создайте резервную копию перед нетривиальным обновлением системы.