Product SiteDocumentation Site

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

6.1. Содержимое файла sources.list
6.1.1. Синтаксис
6.1.2. Хранилища для пользователей стабильных версий Stable
6.1.3. Хранилища для пользователей версий Testing/Unstable
6.1.4. Неофициальные ресурсы: mentors.debian.net
6.1.5. Прокси-кэш для пакетов Debian
6.2. Команды aptitude, apt-get и apt
6.2.1. Инициализация
6.2.2. Установка и удаление
6.2.3. Обновление системы
6.2.4. Configuration Options
6.2.5. Managing Package Priorities
6.2.6. Working with Several Distributions
6.2.7. Tracking Automatically Installed Packages
6.3. The apt-cache Command
6.4. Frontends: aptitude, synaptic
6.4.1. aptitude
6.4.2. synaptic
6.5. Checking Package Authenticity
6.6. Upgrading from One Stable Distribution to the Next
6.6.1. Recommended Procedure
6.6.2. Handling Problems after an Upgrade
6.7. Keeping a System Up to Date
6.8. Automatic Upgrades
6.8.1. Configuring dpkg
6.8.2. Configuring APT
6.8.3. Configuring debconf
6.8.4. Handling Command Line Interactions
6.8.5. The Miracle Combination
6.9. Searching for Packages
Debian популярен среди администраторов благодаря лёгкости установки программного обеспечения и простоте обновления всей системы. Это уникальное преимущество обусловлено, главным образом, программой APT, которую администраторы Falcot Corp изучают с энтузиазмом.
APT — это аббревиатура от Advanced Package Tool (англ. улучшенный инструмент для работы с пакетами). «Улучшенной» её делает подход к работе с пакетами. APT не обрабатывает их по отдельности, а рассматривает их множество как единое целое и обеспечивает наилучшую из возможных комбинаций пакетов из тех, что доступны и совместимы (в соответствии с зависимостями).
APT требует “список источников пакетов”: в файле /etc/apt/sources.list представлены различные хранилища (или “источники”), на которых размещены пакеты Debian. Затем APT импортирует перечень пакетов, размещённых на каждом из этих источников. Это производится путём загрузки файла Packages.xz или файла с другим методом сжатия (такие как Packages.gz или .bz2) (в случае источника двоичного пакета), и файла Sources.xz (в случае источника пакетов с исходным кодами). После загрузки производится анализ содержания данных файлов. Если старая копия этих файлов уже имеется, APT может обновить её, загрузив только отличающиеся части (смотри СОВЕТ Инкрементальное обновление).

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

6.1.1. Синтаксис

Каждая используемая строка файла /etc/apt/sources.listсодержит описание источника, которое состоит из 3 частей, разделённых пробелами.
Первое поле показывает тип источника:
  • deb” для двоичных пакетов,
  • deb-src” для пакетов с исходными кодами.
Второе поле содержит основной URL источника (если включены имена файлов, представленных в Packages.gz, необходим полный и корректный URL): здесь может быть источник с зеркалом Debian или любой другой архив пакетов, поставляемых третьей стороной. URL может начинаться с file://, чтобы показать локальный источник из файловой системы ЭВМ, с http:// чтобы показать источник, доступный на веб-сервере, или с ftp:// для источников, доступных на ftp-сервере. URL также может начинаться с cdrom: для дистрибутивов на дисках CD-ROM/DVD-ROM/Blu-ray, хотя это встречается не так часто, поскольку методы установки по сети становятся всё более и более распространёнными.
Синтаксис последнего поля зависит от структуры хранилища. В простейших случаях здесь может быть проста показана подпапка (с требуемыми конечными слэшами) требуемого источника (часто это просто “./”, которое показывает отсутствие подпапки — пакет расположен прямо на указанном 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 для Stable версии Debian:

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

# Security updates (обновления безопасности)
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

## Debian mirror (Зеркало Debian)

# Base repository (Основное хранилище)
deb http://ftp.debian.org/debian jessie main contrib non-free
deb-src http://ftp.debian.org/debian jessie main contrib non-free

# Stable updates (Стабильные обновления я)
deb http://ftp.debian.org/debian jessie-updates main contrib non-free
deb-src http://ftp.debian.org/debian jessie-updates main contrib non-free

# Stable backports (Стабильное ПО с обратной совместимостью)
deb http://ftp.debian.org/debian jessie-backports main contrib non-free
deb-src http://ftp.debian.org/debian jessie-backports main contrib non-free
В этом файле перечислены все источники пакетов, связанные с версией Debian Jessie (текущей Stable в соответствии с данной записью). Мы предпочли явное название “jessie” вместо соответствующего обозначения “stable“ (stable, stable-updates, stable-backports), потому что мы не хотим столкнуться с ситуацией изменения основного дистрибутива не под нашим управлением после выхода следующей стабильной версии.
Большинство пакетов может быть получено из "основного хранилища”, которое содержит все пакеты, но обновляется не часто (около раза в 2 месяца в “точке выпуска”). Остальные хранилища являются частичными (они не содержат все пакеты) и могут содержать обновления (пакеты с новыми версиями), которые APT может установить. В следующих разделах будут объяснены назначение и правила управлением каждым из этих хранилищ.
Обратите внимание, что когда требуемая версия пакета доступна на нескольких хранилищах, первый из списка в файле sources.list будет использован. Из-за этого неофициальные источники обычно добавляют в конец файла.
В качестве примечания следует отметить, что большая часть сказанного в этом разделе о версии Stable также относится и к версии Oldstable, которая является просто более старой версией Stable, поддерживаемой параллельно текущей.

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 производится подготовка ожидаемых обновлений (под наблюдением Управляющих Стабильного Выпуска).
Обновления безопасности и стабильные обновления, документально фиксируемые в официальном разделе, всегда включаются в состав хранилища, но здесь сопровождающие пакетов также имеют возможность исправить значимые ошибки, которые не требуют немедленного выпуска.
Каждый может использовать это хранилище для проверки обновлений перед их официальным выпуском. В следующей выписке используется обозначение jessie-proposed-updates, которое является и более ясным, и более содержательным, поскольку также существует и wheezy-proposed-updates also exists (для обновлений Oldstable):
deb http://ftp.debian.org/debian jessie-proposed-updates main contrib non-free

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

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

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

Здесь представлен стандартный sources.list для системы, выполняющей версию Testing или Unstable Debian:

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

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

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

# Stable
deb http://ftp.debian.org/debian stable main contrib non-free
deb-src http://ftp.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, где он получает гораздо большую аудиторию и где он будет протестирован гораздо более детально.
Experimental в целом используется теми, кто не собирается ломать свои системы, а затем восстанавливать их. Этот дистрибутив даёт возможность импортировать пакет, с которым пользователь хочет попробовать поработать или для работы с которым у него возникла необходимость. Это как раз показывает подход Debian к таким пакетам, поскольку добавление этого хранилища в файл APT sources.list не приводит к постоянному использованию этих пакетов. Вот строк, которая должна быть добавлена:
deb http://ftp.debian.org/debian experimental main contrib non-free

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

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

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

В случае, когда целая сеть машин настроена на использование одного удалённого сервера для загрузки одних и тех же пакетов, каждый администратор знает, что полезно иметь промежуточный прокси -сервер, работающий как локальный кэш для данной сети (смотри вставку VOCABULARY Cache).
Вы можете использовать APT на использование "стандартного" прокси (смотри Раздел 6.2.4, «Configuration Options» для 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://ftp.debian.org/debian
security http://security.debian.org
approx по-умолчанию работает с портом 9999 через inetd (see Раздел 9.6, «Суперсервер inetd») и требуют, что бы пользователи указали в своём файле sources.list точку подключения к серверу approx:
# Sample sources.list pointing to a local approx server
deb http://apt.falcot.com:9999/security jessie/updates main contrib non-free
deb http://apt.falcot.com:9999/debian jessie main contrib non-free