Управление пакетами с помощью APT
Управление пакетами с помощью APT
Высокоуровневая система решает следующие задачи:
- Как получить пакет для установки.
- Как получить все его зависимости для установки.
- Скачать пакеты и вызывать низкоуровневую систему для установки скачаных пакетов.
Высокоуровневая система также позволяет и удалять уже установленные пакеты. Т.е. обычно пользователь может даже и не знать о наличии низкоуровневой системы.
Выскоуровневые системы получают пакеты из репозиториев. В репозитории, напоминаю, содержатся пакеты, которые созданны, чтобы успешно работать друг с другом. Высокоуровневая система знает в каких внешних репозиториях находятся какие пакеты и подключается к ним для получения как самих пакетов, так и метаинформации.
В рамках системы APT у каждого репозитория есть файлы Packages*, которые описывают списки доступных в настоящий момент пакетов в репозитории. На каждом компьютере-клиенте содержится копия этих файлов. Соответственно локальные файлы позволяют нам сразу обратиться к пакету на сервере по конкретному адресу. Минусом такого подхода является то, что эти файлы имеют тенденцию устаревать, т.к. в процессе жизни репозитория пакеты в нём обновляются. Только в мёртвых репозиториях пакеты не изменяются.
=> в дистрибутивах, использующих APT пользователи зачастую обновляют локалный слепок списка файлов с удалённых репозиториев.
Командный интерфейс APT
Состоит из приложений двух поколений. Первое поколение - стабильное:
- apt-get
- apt-file
- apt-cache
- apt-….
Плюсом этих приложений является то, что их интефейс стабилен и их можно использовать в рамках автоматических скриптов по установке или удалению пакетов.
Мисус достаточно прост: их много :) И запомнить чем конкретно занимается та или иная утилита сложно. Поэтому сейчас разрабатывается инструмент 2 поколения: apt. Он объединяет в себе функциональность всех предыдущих инструментов.
Мы рассмотрим именно apt
.
- Для обновления локального кеша используется команда
update
, т.е.apt update
. - Для вывода списка всех известных пакетов можно воспользоваться
list
. - Для вывода пакетов, которые можно обновить, воспользуйтесь
list --upgradable
. - Для обновления можно использовать:
upgrade
dist-upgrade
- Для поиска пакета в репозитории используется команда
search
:search browser
.image viewer
- Для установки пакета используем команду
install
:install fim
Скачаем изображение https://assets.amuniversal.com/244f2a80c8c601366722005056a9545d
- Для удаления пакета можно воспользоваться следующими командами:
remove
,purge
. - Для удаления автоматически установленных и ненужных пакетов можно использовать
autoremove
.
Конфигурация APT
Файлы конфигурации находятся в каталоге /etc/apt
.
- Каталог apt.conf.d содержит файлы, определяющие поведение системы APT в различных ситуациях.
- Каталог preferences.d предназначен для внесения пользовательских настроек.
- Каталог trusted.gpg.d содержит список GPG подписей, которым APT доверяет.
- Файл sources.list и каталог sources.list.d содержат списки репозиториев, которые настроены для использования в системе APT.
deb [arch=amd64] http://10.7.223.252:8008/debian stretch main contrib non-free
deb [arch=amd64] http://security.debian.org/ stretch/updates main
Описание репозитория начинается с ключевого слова. deb
, deb-src
. deb описывает репозитории, которые содержат бинарные пакеты. deb-src
содержит пакеты с исходным кодом, из которых были созданы бинарные пакеты.
Далее идёт описание той архитектуры, которая доступна для данного репозитория.
Далее идёт путь к репозиторию. Путь может быть как сетевой, так и локалный. Основное требование - он должен быть в формате URI.
Следом идёт название выпуска ОС. В нашем случае это stectch
и stetch/updates
. В Debian есть выпуск, в который попадают сначала все пакеты для тестирования, т.е. он находится в перманенто сломанном состоянии. Он называется experimental
или sid
.
В конце указываются части выпуска, которые мы хотим взять. В Debian различают 3 части:
main
- для данных пакетов есть исходный код и он является полностью свободным, т.е. нет никаких закрытых зависимостей.contrib
- для данных пакетов есть исходный код, он сам по себе является сводобным, но он зависит от заркытых частей.non-free
- для данных пакетов обычно нет исходного кода или его лицензия не является свободной к использованию.
Давайте добавим новый репозиторий в наш список.
В debian есть выпуск типа testing
, в который попадают пакеты из unstable
, которые вроде бы работают. В какой-то момент времени команда Debian решает, что пора делать очередной выпуск и добавление новых пакетов в testing
прекращается, допускается только лишь внесение исправлений. То есть происходит процедура стабилизации выпуска. Когда количество багов становится приемлемым, происходит создание нового выпуска на основании текущего состояния testing
, а testing
вбирает в себя новые пакеты из unstable
.
Однако есть другой способ получать обновления: backports. Backports - это мета-выпуск, который содержит в себе обновления версий, которые были скомпилированы для работы в текущем выпуске. Для stretch этот выпуск называется stretch-backports. Давайте добавим его в sources.list.
- vim
- emacs
- nano
nano file.txt
В качестве источника данных воспользуйтесь http://mirror.yandex.ru/debian