Глава 9. Поддержание обновлений системы Debian

Содержание

9.1. Как поддерживать систему Debian в актуальном состоянии?
9.1.1. aptitude
9.1.2. apt-get и apt-cdrom
9.2. Нужно ли для обновления пакета переходить в однопользовательский режим?
9.3. Нужно ли хранить на диске все файлы-архивы .deb?
9.4. How can I keep a log of the packages I added to the system? I'd like to know when upgrades and removals have occurred and on which packages!
9.5. Возможно ли автоматическое обновление системы?
9.6. Есть несколько машин, как скачивать для них обновления только один раз?

One of Debian's goals is to provide a consistent upgrade path and a secure upgrade process. We always do our best to make upgrading to new releases a smooth procedure. In case there's some important note to add to the upgrade process, the packages will alert the user, and often provide a solution to a possible problem.

You should also read the Release Notes document that describes the details of specific upgrades. It is available on the Debian website at https://www.debian.org/releases/stable/releasenotes and is also shipped on the Debian CDs, DVDs and Blu-ray discs.

9.1. Как поддерживать систему Debian в актуальном состоянии?

One could simply visit a Debian archive site, then peruse the directories until one finds the desired file, and then fetch it, and finally install it using dpkg. Note that dpkg will install upgrade files in place, even on a running system. Sometimes, a revised package will require the installation of a newly revised version of another package, in which case the installation will fail until/unless the other package is installed.

Многие люди сочтут предлагаемый способ отнимающим много времени, т. к. Debian развивается слишком быстро — обычно каждую неделю обновляется где-то дюжина и более пакетов. Это число увеличивается по мере приближения в новому основному выпуску. Чтобы справиться с такой лавиной, многие люди предпочитают использовать более автоматизированный способ. Для этих целей существует несколько различных пакетов.

9.1.1. aptitude

aptitude является рекомендуемым менеджером пакетов для систем Debian GNU/Linux и описывается в Раздел 8.1.3, «aptitude».

До того как вы сможете использовать aptitude для выполнения обновления, вам следует отредактировать файл /etc/apt/sources.list. Если вы хотите выполнить обновление до последней стабильной версии Debian, вам, вероятно, потребуется использовать нечто подобное в качестве источника пакетов:

http://ftp.us.debian.org/debian stable main contrib

Вы можете заменить ftp.us.debian.org (зеркало в США) на имя наиболее быстрого зеркала Debian рядом с вами. См. список зеркал по адресу https://www.debian.org/mirror/list.

Or you can use the redirector service httpredir.debian.org which aims to solve the problem of choosing a Debian mirror. It uses the geographic location of the user and other information to choose the best mirror that can serve the files. To take advantage of it use a source like this one:

http://httpredir.debian.org/debian stable main contrib

More details on this can be found in the sources.list(5) manual page.

To update your system from the command line, run

aptitude update

а затем

aptitude full-upgrade

После того, как вы ответите на возможные вопросы, ваша система будет обновлена.

Заметьте, что aptitude не является рекомендованным инструментом для выполнения обновлений с одного выпуска Debian GNU/Linux на другой. Для выполнения таких обновления вам следует ознакомиться с Информацией о выпуске. В этом документе описываются рекомендованные шаги для выполнения обновлений с предыдущих выпусков, а также проблемы, которые вам следует решить до выполнения обновления.

For details, see the manual page aptitude(8), and the file /usr/share/aptitude/README.

9.1.2. apt-get и apt-cdrom

Альтернативной aptitude является apt-get, инструмент командной строки на основе APT (он был описан в Раздел 8.1.2, «APT»).

apt-get, инструмент командной строки на основе APT для работы с пакетами предоставляет простой и безопасный способ установки и обновления пакетов.

Для использования apt-get, отредактируйте файл /etc/apt/sources.list так же как и для Раздел 9.1.1, «aptitude».

Затем выполните

apt-get update

а затем

apt-get dist-upgrade

Answer any questions that might come up, and your system will be upgraded. See also the apt-get(8) manual page, as well as Раздел 8.1.2, «APT».

Если для установки пакетов вы хотите использовать компакт-диски, DVD или диски BD, то можете воспользоваться программой apt-cdrom. Подробнее об этом написано в информации о выпуске, в разделе «Добавление оптического носителя в качестве источника APT».

Учтите, что когда вы получаете и устанавливаете пакеты, эти файлы так и остаются лежать в одном из подкаталогов /var. Чтобы не истратить всё свободное место раздела, не забывайте удалять лишние файлы с помощью команд apt-get clean и apt-get autoclean, или перемещать их в другое место (подсказка: воспользуйтесь apt-move).

9.2. Нужно ли для обновления пакета переходить в однопользовательский режим?

Нет. Пакеты можно обновлять сразу, даже на работающей системе. Если во время обновления пакета требуется остановка процесса, то на этот случай в Debian есть программа start-stop-daemon, которая останавливает, а затем перезапускает работавший ранее процесс.

9.3. Нужно ли хранить на диске все файлы-архивы .deb?

Нет. Если вы скачали файлы на диск, то после установки пакетов вы можете удалить их из системы, например с помощью команды aptitude clean.

9.4. How can I keep a log of the packages I added to the system? I'd like to know when upgrades and removals have occurred and on which packages!

Параметром --log можно заставить dpkg вести журнал изменений и выполняемых действий. Протоколируются и все вызовы dpkg (например

2005-12-30 18:10:33 install hello 1.3.18 2.1.1-4

), и их результаты (например

2005-12-30 18:10:35 status installed hello 2.1.1-4

) If you'd like to log all your dpkg invocations (even those done using frontends like aptitude), you could add

log /var/log/dpkg.log

to your /etc/dpkg/dpkg.cfg. Be sure the created logfile gets rotated periodically. If you're using logrotate, this can be achieved by creating a file /etc/logrotate.d/dpkg with the following lines

/var/log/dpkg {
  missingok
  notifempty
}

More details on dpkg logging can be found in the dpkg(1) manual page.

aptitude записывает те действия, которые собирается выполнить по установке, удалению или обновлению пакетов, в файл /var/log/aptitude. Учтите, что результаты этих действий в этом файле не сохраняются!

Another way to record your actions is to run your package management session within the script(1) program.

9.5. Возможно ли автоматическое обновление системы?

Да. Для этого можно использовать cron-apt; эта программа обновляет систему через равные промежутки времени с помощью задания cron. По умолчанию она только обновляет список пакетов и скачивает новые пакеты без запуска их установки.

Замечание: НЕ рекомендуется выполнять автоматическое обновление пакетов в тестовых или нестабильных системах, так как это может привести к неожиданному поведению и удалению пакетов без уведомления.

9.6. Есть несколько машин, как скачивать для них обновления только один раз?

Если в вашей сети более одной машины Debian, то для поддержания систем Debian в актуальном состоянии полезно использовать apt-cacher.

apt-cacher сокращает требования к пропускной способности для зеркал Debian, ограничивая частоту обновлений файлов Packages, Releases и Sources, и получает любой файл лишь однократно, независимо от фактических запросов его у прокси. apt-cacher автоматически создаёт HTTP-зеркало Debian на основе запросов, проходящих через прокси.

Естественно, те же самые преимущества можно получить с помощью стандартного кэширующего прокси, если настроить все системы на его использование.