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. Параметры конфигурации
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” для пакетов с исходными кодами.
Второе поле содержит основной URL источника (если включены имена файлов, представленных в Packages.gz, необходим полный и корректный URL). Здесь может быть источник с зеркалом Debian или любой другой архив пакетов, поставляемых третьей стороной. URL может начинаться с file://, чтобы показать локальный источник из файловой системы внутренней компьтерной сети (не интернет), с http:// чтобы показать источник, доступный на веб-сервере, или с ftp:// для источников, доступных на ftp-сервере. URL также может начинаться с cdrom: для дистрибутивов на дисках CD-ROM/DVD-ROM/Blu-ray. Метод с "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 для систем, базирующихся на версии 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 будет использован. Из-за этого неофициальные источники обычно добавляют в конец файла.
В качестве примечания следует отметить, что большая часть сказанного в этом разделе о версии Стабильный также относится и к версии 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 производится подготовка ожидаемых обновлений (под наблюдением Управляющих Стабильного Выпуска).
Обновления безопасности и стабильные обновления, документально фиксируемые в официальном разделе, всегда включаются в состав хранилища, но здесь сопровождающие пакетов также имеют возможность исправить значимые ошибки, которые не требуют немедленного выпуска.
Каждый может использовать это хранилище для проверки обновлений перед их официальным выпуском. В следующей выписке используется обозначение 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 пакет/jessie-backports
$ sudo apt-get install -t jessie-backports пакет

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

Здесь представлен стандартный файл sources.list для системы, выполняющей версию Тестируемый или Нестабильный 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, где он получает гораздо большую аудиторию и где он будет протестирован гораздо более детально.
Экспериментальный обычно используется теми, кто не боится сломать свою систему, а затем восстанавить ее. Этот дистрибутив даёт возможность импортировать пакет, с которым пользователь хочет попробовать поработать или для работы с которым у него возникла необходимость. Это как раз показывает подход 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

В случае, когда целая сеть машин настроена на использование одного удалённого сервера для загрузки одних и тех же пакетов, каждый администратор знает, что полезно иметь промежуточный прокси -сервер, работающий как локальный кэш для данной сети (смотри вставку СЛОВАРЬ Кэш).
Вы можете настроить 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://ftp.debian.org/debian
security http://security.debian.org
approx по-умолчанию работает с портом 9999 через inetd (see Раздел 9.6, «Суперсервер inetd») и требуют, что бы пользователи указали в своём файле sources.list точку подключения к серверу approx:
# Пример нескольких записей в файл sources.list, показывающие на локальный близкий сервер
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