Управление пакетами с помощью APT
Низкий уровень управления, DPKG
Основные задачи:
- Знать какие пакеты установлены
- Знать как установить пакет
- Проверка целостности пакета
- Проверка того, что все зависимости пакета установлены
- Правильно выполнять скрипты по установке / обновлению
- Знать как удалить пакет
- Знать как удалить пакет вместе с конфигурационными файлами
Ограничения:
- Не умеет сам скачивать пакеты
- Не умеет сам скачивать зависимости
APT - система высокоуровневого управления пакетами
Она в свою очередь решает проблемы (или дополняет) DPKG. А также позволяет работать с дистрибутивом как с цельной системой связных пакетов.
APT обладает следующей информацией:
- Список зеркал, откуда можно получить пакеты.
- Для каждого зеркала мы знаем список пакетов, который там доступен. Т.е. на компьютере хранится копия файла Packages, в которой перечислены пакеты из данного зеркала.
- Используя информацию о доступных пакетов APT позволяет решать задачи по установке самого целевого пакета, а также его зависимостей. Плюс APT может поставить рекомендованные пакеты.
На высоком уровне работа с APT выглядит так:
- Пользователь даёт команду на установку пакета
- APT проверяет свой локальный кеш Packages и находит наиболее подходящий под запрос.
- APT строит дерево зависимостей всех пакетов, которые необходимы для установки целевого пакета.
- APT формирует список пакетов для установки (и формирует порядок их установки)
- APT спрашивает пользователя: согласен ли он с установокой целевых пакетов
- Пользователь соглашается
- APT затем скачивает все пакеты для установки
- APT передаёт в DPKG задачи по установке пакетов в соответствии с выведенным порядком
У APT есть один недостаток по сравнению YUM (DNF), подобные системы управления пакетами в RPM-мире, - это то, что пользователю самостоятельно необходимо давать команду на обновление локального кеша Packages.
В ситуации, когда у нас пакеты не часто обновляются, это не приносит большой беды. Однако даже для стабильных выпусков всё-равно происходит обновление пакетов в конкретном дистрибутиве. Это обычно связано с безопастностью.
Таким образом на плечи пользователя ложиться ещё задача по обновлению списка пакетов. В дистрибутивах, нацеленных на обычного пользователя, эта задача зачастую выполняется в фоне и он не знает о такой проблеме.
Инструменты APT
В классическом варианте APT предоставляет ряд инструментов:
apt-get
- приложение для установки и удаления пакетовapt-cache
- приложение для работы с локальным кешем пакетовapt-file
- приложение для поиска в списке файлов для всех пакетов, которые есть в репозитории.
Однако в начале 2010х начали думать о предоставлении более удобного инструмента для конечных пользователей. В результате появился инструмент apt
. Он содержит в себе большинство операций, которые необходимы конечному пользователю. Однако он не предоставляет ВСЕХ действий из классических инструментов.
=> APT можно и нужно использовать в повседневной жизни, однако не стоит забывать и про классику. Плюс, интерфейс APT ещё не стабилизирован, поэтому в скриптах необходимо операться только на классику.
Инструмент APT
apt
Команда autoremove
нужна, чтобы подчистить систему от пакетов, которые не были явно указаны пользователем как необходимые. У пакета есть 2 варианта установки:
- Пользователь явно указал, что хочет видеть данный пакет. Например, мы хотим поставить
mpv
. - Пакет был поставлен, чтобы пакет из первой категории мог работать.
Со временем вы можете удалить пакет из первой категории. Автоматически не будут удалены пакеты из второй категории, у которых не осталось пакетов из первой категории.
Решением задачи по удалению ненужных пакетов из 2 категории и занимается команда autoremove
.
Команда full-upgrade
отличается от upgrade
тем, что при обновлении она будет стремиться повысить версии как можно большего количества пакетов. А те, которые нельзя повысить, будут удалены. Эта операция нужна, когда вы переходите с со старого выпуска дистрибутива на более новый выпуск.
Настройка источников для пакетов
При правильной настройке источников вы можете быть уверены, что система будет нормально работать при установке пакетов из них.
Однако если вы внесёте некорректную информацию в список источников или неправильно настроите приореты, то вполне можете сломать систему. Напоминаю, что бинарный дистрибутив будет работоспособен до тех пор пока вы ставите бинарно совместимые пакеты.
Если вы начнёте смешивать пакеты из разных дистрибутивов, то достаточно легко сломать систему.
Для простоты можно сказать, что все ваши источники должны быть совместимы с версией дистрибутива, который сейчас используется.
У Debian для каждого выпуска есть своё кодовое слово:
- Jessie 7
- Wheezy 8
- Squeeze, 9, oldstable
- Buster, 10, stable
- Bullseye, 11, testing
У Debian для каждого выпуска есть 3 категории пакетов:
main
- основные пакеты, пакеты созданные на базе открытого исходного кода.non-free
- пакеты, собранные на базе закрытого исходного кода.contrib
- пакеты, собранные на базе открытого кода, но для их работы нужны пакеты изnon-free
.
Конфигурация источников находится в файле /etc/apt/sources.list
и в каталоге /etc/apt/sources.list.d/
.
Также посмотреть на список активных репозиториев можно с помощью apt-cache policy.
=> Для настройки списка репозиториев достаточно:
- Исправить списки репозиториев в конфигурационных файлах
- Получить обновления для актуального списка репозиториев (apt update)
- Проверить, что данный репозиторий является активным (apt-cache policy)
Переход от одного выпуска к другому
При выходе новой версии ОС вы обычно хотите её обновить. APT может помочь в этом деле (не обязательно переустанвливать систему).
Данная задача в Debian возникает 1 раз в 1.5-2 года. Т.е. выпуски достаточно долго живут.
Выпуски появляются в тот момент, когда testing пройдёт фазу заморозки и в замороженном testing уже не будет очень много ошибок.
Установка совместимых пакетов от других поставщиков
Иногда хочется иметь актуальные версии для целевого ПО. Производители такого ПО могут предоставлять свои собственные репозитории для решения этой задачи.
Из полезных для домашнего использования репозиториев следует отметить:
- Debian Multimedia - репозиторий, в котором для всех мультимедиа-проектов содержатся сборки актуальных версий ПО для конкретного дистрибутива. Плюсы: вы получаете стабильность вашей системы, но можете смотреть все видосики.
- Debian Backports - репозиторий, в котором появлюятся более свежии версии различного ПО. Т.е. мы всё-таки хотим иметь возможность поставить такое ПО в нашу систему. Единственный минус даннх пакетов - они менее тестированы по сравнению с оригинальными пакетами.