Product SiteDocumentation Site

Глава 6. Обслуживание и обновление: инструменты APT

6.1. Содержимое файла sources.list
6.1.1. Синтаксис
6.1.2. Хранилища для пользователей стабильных версий Stable
6.1.3. Хранилища для пользователей версий Testing/Unstable
6.1.4. Using Alternate Mirrors
6.1.5. Неофициальные ресурсы: mentors.debian.net
6.1.6. Прокси-кэш для пакетов Debian
6.2. Команды aptitude, apt-get и apt
6.2.1. Инициализация
6.2.2. Установка и удаление
6.2.3. Обновление системы
6.2.4. Параметры конфигурации
6.2.5. Управление приоритетами пакетов
6.2.6. Работа с отдельными дистрибутивами
6.2.7. Трассирование автоматически устнавливаемых пакетов (наблюдение)
6.3. Команда apt-cache
6.4. Графические оболочки: aptitude, synaptic
6.4.1. программа aptitude
6.4.2. Программа synaptic
6.5. Проверка подлинности пакета
6.6. Обновление Одного Стабильного Дистибутива в Следующий
6.6.1. Рекомендованный порядок действий
6.6.2. Решение проблем после обновления
6.7. Содержание системы с периодическими обновлениями
6.8. Автоматическое Обновление
6.8.1. Конфигурирование dpkg
6.8.2. Настройка APT (конфигурирование)
6.8.3. Настройка debconf
6.8.4. Управление Взаимодействием Через Командную Строку
6.8.5. Удивительно хорошая Комбинация
6.9. Поиск пакетов
Debian популярен среди администраторов благодаря лёгкости установки программного обеспечения и простоте обновления всей системы. Это уникальное преимущество обусловлено, главным образом, программой APT, которую администраторы Falcot Corp изучают с энтузиазмом.
APT — это аббревиатура от Advanced Package Tool (англ. улучшенный инструмент для работы с пакетами). «Улучшенной» её делает подход к работе с пакетами. APT не обрабатывает их по отдельности, а рассматривает их множество как единое целое и обеспечивает наилучшую из возможных комбинаций пакетов из тех, что доступны и совместимы (в соответствии с зависимостями).
APT нуждается в получении "перечня пакетов из источников" (“list of package sources”): в файле /etc/apt/sources.list имеются примеры подключения различных хранилищ (или “sources” - то есть источники), на которых размещены пакеты Debian. Затем APT импортирует для каждого источника свой "перечень пакетов из источников" (“list of package sources”), размещённых (опубликованных) там. Это производится путём загрузки файла Packages.xz или файла с другим методом сжатия (такие как Packages.gz или .bz2) (в случае источника "of binary packages" - скомпилированного, бинарного пакета), и файла Sources.xz (в случае если был выбран источник пакетов с исходным кодами). После загрузки этих файлов APT производит анализ их содержания. Если старая копия этих файлов уже имеется, APT может обновить её, загрузив только отличающиеся части (смотри СОВЕТ Инкрементальное обновление).

6.1. Содержимое файла sources.list

6.1.1. Синтаксис

Каждая используемая строка файла /etc/apt/sources.listсодержит описание источника, которое состоит из 3 (или более) частей, разделённых пробелами. Пример "deb http://ftp.uk.debian.org/debian main" (3 части). (Пример из 6-ти частей "deb-src http://ftp.uk.debian.org/debian unstable main contrib non-free").
Первое поле показывает тип источника:
  • deb” для двоичных (скомпилированных, бинарных) пакетов,
  • deb-src” для пакетов с исходными кодами.
The second field gives the base URL of the source (combined with the filenames present in the Packages.xz files, it must give a full and valid URL): this can consist in a Debian mirror or in any other package archive set up by a third party. The URL can start with file:// to indicate a local source installed in the system's file hierarchy, with http:// to indicate a source accessible from a web server, or with ftp:// for a source available on an FTP server. The URL can also start with cdrom: for CD-ROM/DVD-ROM/Blu-ray disc based installations, although this is less frequent, since network-based installation methods are more and more common.
Синтаксис последнего поля зависит от структуры хранилища. В простейших случаях здесь может быть проста показана подпапка (с требуемыми конечными слэшами) требуемого источника (часто это просто “./”, которое показывает отсутствие подпапки — пакет расположен прямо на указанном URL). Но в общем случае хранилища структурированы как зеркальные сайты Debian, с множеством дистрибутивов, каждый из которых имеет множество компонент. В этих случае поле содержит имя выбранного дистибутива (по его “кодовому имени” — смотри перечень на вставке СООБЩЕСТВО Брюс Перенс, скандальный лидер — или по соответствующему “выпуску” — stable, testing, unstable). Затем следуют доступные компоненты (или разделы) (выбранные из main, contrib, и non-free на обычном зеркальном сайте Debian).
Записи cdrom описывают CD/DVD-ROMs, которые у вас есть. В противоположность другим записям, CD-ROM не всегда доступны, поскольку диск должен быть вставлен в привод и поскольку только один диск может быть прочитан за раз. Поэтому эти источники управляются несколько другим путём и добавляются с помощью программы apt-cdrom, которая обычно выполняется с параметром add. После запуска данная программа просит пользователя вставить диск в привод, а затем просматривает содержимое диска, ища файлы Packages. Затем она использует эти файлы для обновления база данных доступных пактов (подобная операция обычно выполняется с помощью команды apt update). После этого APT может просить вставить диск, если ей требуется один из этих пакетов.

6.1.2. Хранилища для пользователей стабильных версий Stable

Здесь представлен стандартный файл sources.list для систем, базирующихся на версии Debian Стабильный:

Пример 6.1. Файл /etc/apt/sources.list для пользователей Debian Stable

# Security updates
deb http://security.debian.org/ stretch/updates main contrib non-free
deb-src http://security.debian.org/ stretch/updates main contrib non-free

## Debian mirror

# Base repository
deb http://deb.debian.org/debian stretch main contrib non-free
deb-src http://deb.debian.org/debian stretch main contrib non-free

# Stable updates
deb http://deb.debian.org/debian stretch-updates main contrib non-free
deb-src http://deb.debian.org/debian stretch-updates main contrib non-free

# Stable backports
deb http://deb.debian.org/debian stretch-backports main contrib non-free
deb-src http://deb.debian.org/debian stretch-backports main contrib non-free
This file lists all sources of packages associated with the Stretch version of Debian (the current Stable as of this writing). We opted to name “stretch” explicitly instead of using the corresponding “stable“ alias (stable, stable-updates, stable-backports) because we don't want to have the underlying distribution changed outside of our control when the next stable release comes out.
Большинство пакетов может быть получено из "основного хранилища”, которое содержит все пакеты, но обновляется не часто (около раза в 2 месяца в “точке выпуска”). Остальные хранилища являются частичными (они не содержат все пакеты) и могут содержать обновления (пакеты с новыми версиями), которые APT может установить. В следующих разделах будут объяснены назначение и правила управления каждым из этих хранилищ.
Обратите внимание, что когда требуемая версия пакета доступна на нескольких хранилищах, первый из списка в файле sources.list будет использован. Из-за этого неофициальные источники обычно добавляют в конец файла.
В качестве примечания следует отметить, что большая часть сказанного в этом разделе о версии Стабильный также относится и к версии Oldstable, которая является просто более старой версией Стабильная, поддерживаемой параллельно текущей.

6.1.2.1. Обновления безопасности

Обновления безопасности размещаются не в обычной сети зеркальных сайтов Debian, а на security.debian.org (на небольшом наборе машин, управляемых Системными администраторами Debian). Этот архив содержит обновления безопасности (подготовленные Командой Безопасности Debian и/или сопровождающими пакетов) для дистрибутива Stable.
На сервере также могут быть размещены обновления безопасности для версии Testing, но это случается не очень часто, поскольку эти обновления попадают в Testing через постоянный поток обновления, приходящий от Unstable.

6.1.2.2. Стабильные обновления

Стабильные обновления не являются необходимыми для обеспечения безопасности, но считаются достаточно важными, чтобы довести их до пользователей до выхода следующей стабильной версии.
В этом хранилище обычно содержаться исправления критических ошибок, которые не были исправлены до выпуска версии или появились из-за последующих обновлений. При необходимости здесь также могут содержаться обновления для пакетов, которые постоянно изменяются … таких как правила определения спама spamassassin, база вирусов clamav, или правила перехода на летнее-зимнее время для всех часовых поясов (tzdata).
На деле, это хранилище является частью хранилища proposed-updates, прошедшего тщательный отбор Управляющими Стабильного Выпуска.

6.1.2.3. Предполагаемые обновления

После выхода дистрибутив Stable обновляется примерно раз в 2 месяца. В хранилище proposed-updates производится подготовка ожидаемых обновлений (под наблюдением Управляющих Стабильного Выпуска).
Обновления безопасности и стабильные обновления, документально фиксируемые в официальном разделе, всегда включаются в состав хранилища, но здесь сопровождающие пакетов также имеют возможность исправить значимые ошибки, которые не требуют немедленного выпуска.
Anyone can use this repository to test those updates before their official publication. The extract below uses the stretch-proposed-updates alias which is both more explicit and more consistent since jessie-proposed-updates also exists (for the Oldstable updates):
deb http://ftp.debian.org/debian stretch-proposed-updates main contrib non-free

6.1.2.4. Стабильное ПО с обратной совместимостью

В хранилище stable-backports расположены “пакеты с обратной совместимостью”. Это определение относится к пакетом какого-то существующего программного обеспечения, которые были перекомпилированы для устаревшего дистрибутива, обычно для Stable.
Когда дистрибутив немного устаревает, множество проектов разработки ПО выпускает новые версии, которые уже не совместимы с текущей версией Stable (которая дорабатывается только чтобы решить наиболее важные проблемы, такие как проблемы безопасности ). Поскольку выпуски Testing и Unstable могут быть более опасными, сопровождающие пакетов иногда предлагают перекомпилированное для версии Stable программное обеспечение, которое полезно тем, что ограничивает потенциальную неустойчивость при небольшом числе выбранных пакетов.
ПО с обратной совместимостью из stable-backports всегда создаётся из пакетов, доступных в Testing. Этим обеспечивается то, что все установленное ПО с обратной совместимостью будет доступно для обновления для соответствующей стабильной версии при одновременной доступности следующего стабильного выпуска Debian.
Несмотря на то, что данное хранилище предоставляет новые версии пакетов, APT не будет устанавливать их, пока вы не дадите для этого конкретных инструкций (или пока вы уже не сделали это с официальной версией данного ПО с обратной совместимостью):
$ sudo apt-get install package/stretch-backports
$ sudo apt-get install -t stretch-backports package

6.1.3. Хранилища для пользователей версий Testing/Unstable

Здесь представлен стандартный файл sources.list для системы, выполняющей версию Тестируемый или Нестабильный Debian:

Пример 6.2. Файл /etc/apt/sources.list для пользователей Debian Testing/Unstable

# Unstable
deb http://deb.debian.org/debian unstable main contrib non-free
deb-src http://deb.debian.org/debian unstable main contrib non-free

# Testing
deb http://deb.debian.org/debian testing main contrib non-free
deb-src http://deb.debian.org/debian testing main contrib non-free

# Stable
deb http://deb.debian.org/debian stable main contrib non-free
deb-src http://deb.debian.org/debian stable main contrib non-free

# Security updates
deb http://security.debian.org/ stable/updates main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free
С таким файлом sources.list APT будет устанавливать пакеты из Unstable. Если вам это не требуется, используйте настройку APT::Default-Release (смотри Раздел 6.2.3, «Обновление системы»), чтобы сообщить APT о необходимости брать пакеты из другого дистрибутива (наиболее вероятно Testing в данном случае).
Совершенно обоснованным является включение всех этих хранилищ, даже когда достаточно только одного. Пользователи Testing оценят возможность выбрать хороший исправленный пакет из Unstable, в случае когда версия Testing содержит надоевшую ошибку. И наоборот, пользователи Unstable, пострадавшие от неожиданных сбоев в пакетах, имеют возможность откатить пакеты до их (предположительно рабочей) версии Testing.
С включением Stable имеется больше вопросов, но часто это даёт возможность доступа к некоторым пакетам, которые были удалены из разрабатываемых версий. Также это даёт уверенность. что вы получаете самые свежие обновления для пакетов, которые не изменялись с выпуска последней стабильной версии.

6.1.3.1. Экспериментальное хранилище

Архив Experimental (экспериментальных) пакетов представлен на всех зеркалах Debian и содержит пакет, которые до сих пор не вошли в версию Unstable из-за их качества, не отвечающего стандарту — это зачастую версии разрабатываемого ПО или предварительные версии (альфа, бета, кандидат для выпуска…). Пакет также может быть отправлен сюда после последующих доработок, которые могут привести к проблемам. После этого сопровождающий пытается разрешить эти проблемы, пользуясь помощью продвинутых пользователей, которые могут подсказать правильное решение. После этой первой стадии пакет перемещается в Unstable, где он получает гораздо большую аудиторию и где он будет протестирован гораздо более детально.
Экспериментальный обычно используется теми, кто не боится сломать свою систему, а затем восстанавить ее. Этот дистрибутив даёт возможность импортировать пакет, с которым пользователь хочет попробовать поработать или для работы с которым у него возникла необходимость. Это как раз показывает подход Debian к таким пакетам, поскольку добавление этого хранилища в файл APT sources.list не приводит к постоянному использованию этих пакетов. Вот строка, которая должна быть добавлена:
deb http://deb.debian.org/debian experimental main contrib non-free

6.1.4. Using Alternate Mirrors

The sources.list examples in this chapter refer to package repositories hosted on deb.debian.og. Those URLs will redirect you to servers which are close to you and which are managed by Content Delivery Networks (CDN) whose main role is to store multiple copies of the files across the world to deliver them as fast as possible to users. The CDN companies that Debian is working with are Debian partners who are offering their services freely to Debian. While none of those servers are under direct control of Debian, the fact that the whole archive is sealed by GPG signatures makes it a non-issue.
Picky users who are not satisfied with the performance of deb.debian.org can try to find a better mirror in the official mirror list:
But when you don't know which mirror is best for you, this list is of not much use. Fortunately for you, Debian maintains DNS entries of the form ftp.country-code.debian.org (e.g. ftp.us.debian.org for the USA, ftp.fr.debian.org for France, etc.) which are covering many countries and which are pointing to one (or more) of the best mirrors available within that country.
As an alternative to deb.debian.org, there used to be httpredir.debian.org. This service would identify a mirror close to you (among the list of official mirrors, using GeoIP mainly) and would redirect APT's requests to that mirror. This service has been deprecated due to reliability concerns and now httpredir.debian.org provides the same CDN-based service as deb.debian.org.

6.1.5. Неофициальные ресурсы: mentors.debian.net

Существуют многочисленные ресурсы пакетовDebian, созданных продвинутыми пользователями, которые перекомпилируют некоторые программы (Ubuntu сделала эту вещь популярной с помощью их службы Персонального Архива Пакетов), by программистами, которые делают свои творения доступными для всех и даже разработчиками Debian, которые предлагают предварительные версии своих пакетов онлайн.
Сайт mentors.debian.net интересен тем (хотя он только предоставляет пакеты с исходными кодами), что нам нем собираются пакеты, созданный кандидатами на статус официальных разработчиков Debian или добровольцами, которые хотят создавать пакеты Debian без прохождения через этот процесс интеграции в сообщество разработчиков. Эти пакеты сделаны доступным без каких-либо гарантий относительно их качества;будьте уверены, что вы проверили их происхождение и целостность, а затем тестируйте их перед тем, как рассматривать вопрос их использования в работе.
Устанавливая пакет, вы даёте права администратора (root) его создателю, поскольку содержимое сценариев инициализации выполняется под этим пользователем. Официальные пакеты Debian создаются добровольцами, которые были прошли рассмотрение и включение в сообщество, и которые могут подписывать свои пакеты, так что их происхождение и целостность могут быть проверены.
В целом, будьте осторожны с пакетами, происхождение которых вам не известно, и которые на размещены на официальных серверах Debain: оцените степень доверия к их создателю и проверьте целостность пакета.

6.1.6. Прокси-кэш для пакетов Debian

В случае, когда целая сеть машин настроена на использование одного удалённого сервера для загрузки одних и тех же пакетов, каждый администратор знает, что полезно иметь промежуточный прокси -сервер, работающий как локальный кэш для данной сети (смотри вставку СЛОВАРЬ Кэш).
Вы можете настроить APT для использования в качестве "стандартного" прокси (смотри Раздел 6.2.4, «Параметры конфигурации» для стороны APT-а и Раздел 11.6, «HTTP/FTP Proxy» для второй стороны - прокси), но экосистема Debian предлагает лучшие опции для решения этой проблемы. Специальные программы, представленные в этом разделе, является более быстрыми, чем простой прокси-кэш, потому что они зависят от специальных структур хранилищ APT (например они знают, когда отдельные файлы являются устаревшими или нет, и таким образом устанавливают время, в течение которого они хранятся).
apt-cacher и apt-cacher-ng работают как обычные прокси-кэш серверы. Файл APTsources.list остаётся неизменным, но APT настраивается для использования их как прокси для исходящих запросов.
approx, с другой стороны, действует как HTTP сервер, который “отражает” любое число хранилищ на своих URL верхнего уровня . Пути между теми директориями верхнего уровня и удалёнными URL хранилищ находятся в файле /etc/approx/approx.conf:
# <name> <repository-base-url>
debian   http://deb.debian.org/debian
security http://security.debian.org
approx runs by default on port 9999 via a systemd socket and requires the users to adjust their sources.list file to point to the approx server:
# Sample sources.list pointing to a local approx server
deb http://apt.falcot.com:9999/security stretch/updates main contrib non-free
deb http://apt.falcot.com:9999/debian stretch main contrib non-free