Как обновить debian 9
Перейти к содержимому

Как обновить debian 9

  • автор:

Как обновить Debian 9 до 10

В этой статье мы разберем как выполнить обновление Debian 9 до 10. В этой версии улучшена поддержка загрузки UEFI, система изоляции приложений AppArrmor активирована по умолчанию используется фильтрация сетевых пакетов на основе nftables вместо iptables, поддерживается печать без драйверов с CPUS 2.2.10, а также добавлена поддержка платформы Allwinner A64.

Обратите внимание, что при обновлении всегда есть риск сломать систему. Самый надежный способ получить новую версию — это установить её начисто. Если вы всё же решили делать обновление, создайте резервную копию, а для производственных систем лучше ещё посмотрите официальную документацию.

Как обновить Debian 9 до 10

1. Очистка системы

Первое правило безопасного обновления — чем меньше программного обеспечения установлено в вашей системе, тем выше шансы, что обновление пройдет без проблем. Сторонние пакеты, а тем более PPA и другие репозитории очень сильно уменьшают шансы того, что обновление пройдет без проблем. Поэтому перед обновлением лучше удалить все пакеты из системы.

Вы можете найти все сторонние пакеты с помощью утилиты aptitude:

sudo aptitude search ‘~i(!~ODebian)’

Эта команда выведет все пакеты, которых больше нет в официальном репозитории потому, что они были удалены, а также пакеты, установленные вручную. Такие пакеты желательно удалить.

2. Обновление существующей системы

Второе правило для выполнения максимально безопасного обновления — ваша система должна быть обновлена до самой последней версии. Для этого выполните:

sudo apt update
sudo apt dist-upgrade

Если все прошло хорошо, выполните проверку целостности базы данных:

Затем проверьте нет ли отложенных пакетов:

Отложенные пакеты не могут быть обновлены, они могут стать проблемой при обновлении до Debian 10. Прежде чем пойти дальше исправьте все проблемы, эта команда может вам помочь:

3. Настройка репозиториев

Теперь наша система полностью обновлена и готова к переходу на новую версию и вот ответ на вопрос как обновить debian 9 до debian 10. Для этого нужно отредактировать файл /etc/apt/sources.list и заменить в нем все репозитории stretch на buster. Сначала создайте резервную копию существующего файла:

cp /etc/apt/sources.list /etc/apt/sources.list_backup

Затем откройте файл для редактирования, с помощью vim или apt edit sources и замените все вхождения слова stretch на buster:

#БЫЛО:
deb http://httpredir.debian.org/debian stretch main
deb http://httpredir.debian.org/debian stretch-updates main
deb http://security.debian.org stretch/updates main

#СТАЛО:
deb http://httpredir.debian.org/debian buster main
deb http://httpredir.debian.org/debian buster-updates main
deb http://security.debian.org buster/updates main

Вместо ручного редактирования вы можете использовать команду sed, но лучше сделать вручную:

sed -i ‘s/stretch/buster/g’ /etc/apt/sources.list

Далее сохраните изменения если использовали редактор и обновите список репозиториев:

Следующей командой вы можете посмотреть список пакетов для обновления:

apt list —upgradable

4. Обновление до Debian 10

Все подготовительные шаги завершены и нам остался последний — обновить Debian 9 до 10. Для этого выполните команды:

Во время обновления установщик может попросить разрешение на перезапуск нескольких системных служб. Это приостановит процесс установки и чтобы его продолжить вам придется согласится. Обновление займет некоторое время, в зависимости от скорости вашего интернета и производительности процессора. Теперь вы знаете как обновиться до Debian 10.

5. Проверка версии системы

После завершения обновления перезагрузите компьютер. Далее вы можете проверить насколько все успешно прошло с помощью команды:

Здесь вы должны увидеть, что у вас установлена десятая версия системы.

Выводы

Сегодня мы разобрали как выполнить обновление до debian 10, как видите, процедура довольно простая, хотя и может вызвать проблемы при неосторожном использовании. Ещё раз напоминаю, что перед тем, как делать что-либо лучше создать резервную копию важных файлов.

Глава 4. Обновление с Debian 9 (stretch)

Перед обновлением мы рекомендуем вам также прочитать Глава 5, Что нужно знать о buster. Этот раздел описывает потенциальные проблемы, которые не имеют прямого отношения к процессу обновления, но всё же важно узнать о них до установки.

4.1.1. Создание резервной копии всех данных и настроек

Перед обновлением настоятельно рекомендуется сделать резервную копию всей системы или, по крайней мере, всех данных и настроек, которые вы не можете позволить себе потерять. Инструменты для обновления и сам процесс достаточно надёжны, но сбой аппаратного обеспечения в ходе обновления может привести к серьёзному повреждению системы.

В первую очередь необходимо сделать резервную копию содержимого каталогов /etc , /var/lib/dpkg , /var/lib/apt/extended_states и результата работы команды dpkg —get-selections «*» (кавычки важны). Если для управления пакетами вы используете aptitude , то также сделайте резервную копию /var/lib/aptitude/pkgstates .

Обновление само по себе никак не затрагивает каталог /home . Однако некоторые приложения (в частности, некоторые приложения Mozilla, окружения рабочего стола GNOME и KDE) при первом запуске новой версии перезаписывают имеющиеся пользовательские настройки новыми настройками по умолчанию. На всякий случай стоит сделать резервную копию скрытых файлов и каталогов (название которых начинается с точки) из домашних каталогов пользователей. Это поможет вам в случае необходимости восстановить старые настройки. Не лишним будет предупредить пользователей об этой проблеме.

Установка любого пакета должна производиться с привилегиями суперпользователя. Поэтому вы должны либо войти в систему под именем суперпользователя root , либо использовать программы su или sudo , чтобы получить необходимые права.

Для проведения обновления есть несколько предварительных требований; проверьте, что они соблюдаются.

4.1.2. Предварительное информирование пользователей

Желательно заранее сообщать всем пользователям о любых планируемых обновлениях, хотя пользователи, работающие в системе через ssh , не должны испытать особых проблем в процессе обновления и вполне могут продолжать работу.

Если вы хотите принять дополнительные меры предосторожности, создайте резервную копию и размонтируйте раздел /home перед обновлением.

При обновлении до buster потребуется обновить ядро, поэтому потребуется перезагрузка. Обычно, это происходит по окончании обновления.

4.1.3. Подготовка к перерыву в работе служб

При обновлении может потребоваться обновить пакеты для работающих на данной машине служб. В этом случае работа служб будет прервана на время обновления, замены и настройки пакетов.

Точное время простоя служб будет зависеть от количества обновляемых в системе пакетов, а также от времени, затрачиваемое администратором для ответов на вопросы о настройке. Заметим, что если процесс обновления оставить без внимания и не следить за запросами системы,то высока вероятность увеличить недоступность служб [1] на значительный промежуток времени.

Если обновляемая система предоставляет критически важные службы для пользователей или сети [2] , то вы можете сократить время простоя, если сначала выполните минимальное обновление системы (см. Раздел 4.4.4, «Минимальное обновление системы»), затем обновите ядро и перезагрузитесь, а затем обновите пакеты, связанные с вашими критическими службами. Описание обновления этих пакетов перед полным обновлением смотрите в Раздел 4.4.5, «Обновление системы». Такой порядок позволяет оставить работающими критические службы на время прохождения полного обновления и сократить время простоя.

4.1.4. Подготовка к восстановлению

Хотя Debian пытается проверить, что система всегда будет в состоянии загрузиться, есть реальная опасность возникновения проблем после перезагрузки в обновлённую систему. Большая часть возможных проблем описана здесь и далее в следующих главах информации о выпуске.

Поэтому лучше удостовериться, что вы сможете вернуть систему в прежнее состояние, если она не сможет загрузиться или, для систем управляемых удалённо, не заработает сеть.

Если обновление производится удалённо через ssh , рекомендуем вам предусмотреть подключение к локальной консоли сервера через удалённый последовательный терминал. Может случиться так, что после обновления ядра и перезагрузки, вам потребуется исправить системные настройки через локальную консоль. Если система случайно перезагрузится в середине процесса обновления, вам также потребуется локальная консоль для восстановления.

Для аварийного восстановления обычно мы рекомендуем использовать режим восстановления из программы установки Debian buster. Преимущество в использовании программы установки состоит в том, что вы можете выбирать из множества методов установки тот, который лучше подходит в вашей ситуации. Дополнительная информация приведена в разделе « Восстановление сломанной системы » главы 8 руководства по установке и в ЧаВО по программе установки Debian.

Если загрузиться не удалось, вам может потребоваться альтернативный способ загрузки системы для доступа и восстановления. Для этого можно воспользоваться специальным образом восстановления или живым компакт-диском с Linux. После загрузки каким-то из способов, вы сможете смонтировать имеющуюся корневую файловую систему и выполнить в неё chroot , чтобы найти и исправить ошибку.

4.1.4.1. Отладочная оболочка из initrd во время загрузки

Пакет initramfs-tools добавляет отладочную оболочку [3] в создаваемый initrd. Например, если initrd не удастся смонтировать корневую файловую систему, то вы попадёте в эту отладочную оболочку; она предоставляет основные команды, которые помогут вам выяснить в чём дело и, возможно, даже всё исправить.

Что нужно проверить: наличие правильных файлов устройств в каталоге /dev ; какие модули загружены ( cat /proc/modules ); проверить в результатах dmesg отсутствие ошибок при загрузке драйверов. Вывод dmesg также покажет соответствие назначенных файлов устройств дискам; убедитесь, что результатом echo $ROOT является ожидаемое устройство для корневой файловой системы.

Если вы решили проблему, для выхода из отладочной оболочки наберите exit , и процесс загрузки продолжится с места останова. Естественно, вам нужно устранить причину и пересоздать initrd для того, чтобы следующая загрузка прошла без проблем.

4.1.4.2. Отладочная оболочка во время загрузки с использованием systemd

Если не удаётся загрузиться под systemd, можно запустить командную оболочку с правами суперпользователя, изменив строку команд ядра. Если базовая загрузка завершается успешно, но некоторые службы не запускаются, может быть полезным добавить команду systemd.unit=rescue.target к параметрам ядра.

В противном случае параметр ядра systemd.unit=emergency.target как можно раньше предоставит вам командную оболочку с правами суперпользователя. Тем не менее, это выполняется до монтирования корневой файловой системы с правами на чтение. Вам придётся выполнить это вручную с помощью следующей команды:

# mount -o remount,rw /

More information on debugging a broken boot under systemd can be found in the Diagnosing Boot Problems article.

4.1.5. Подготовка безопасного окружения для обновления

If you are using some VPN services (such as tinc ) consider that they might not be available throughout the upgrade process. Please see Раздел 4.1.3, «Подготовка к перерыву в работе служб».

In order to gain extra safety margin when upgrading remotely, we suggest that you run upgrade processes in the virtual console provided by the screen program, which enables safe reconnection and ensures the upgrade process is not interrupted even if the remote connection process temporarily fails.

4.1.6. Verify network interface name support

Systems upgraded from older releases that still use network interfaces with names like eth0 or wlan0 are at risk of losing networking once they switch to buster; see Раздел 5.1.6, «Migrating from legacy network interface names» for migration instructions.

4.2. Checking APT configuration status

The upgrade process described in this chapter has been designed for « pure » Debian stable systems. If your APT configuration mentions additional sources besides stretch, or if you have installed packages from other releases or from third parties, then to ensure a reliable upgrade process you may wish to begin by removing these complicating factors.

The main configuration file that APT uses to decide what sources it should download packages from is /etc/apt/sources.list , but it can also use files in the /etc/apt/sources.list.d/ directory — for details see sources.list(5). If your system is using multiple source-list files then you will need to ensure they stay consistent.

Below there are two methods for finding installed packages that did not come from Debian, using either aptitude or apt-forktracer . Please note that neither of them are 100% accurate (e.g. the aptitude example will list packages that were once provided by Debian but no longer are, such as old kernel packages).

$ aptitude search '~i(!~ODebian)' $ apt-forktracer | sort

Direct upgrades from Debian releases older than 9 (stretch) are not supported. Please follow the instructions in the Release Notes for Debian 9 to upgrade to Debian 9 first.

Эта процедура также предполагает, что ваша система обновлена до последнего выпуска stretch. Если это не так или вы в этом не уверены, следуйте инструкциям из Раздел A.1, «Обновление системы stretch».

You should also make sure the package database is ready before proceeding with the upgrade. If you are a user of another package manager like aptitude or synaptic , review any pending actions. A package scheduled for installation or removal might interfere with the upgrade procedure. Note that correcting this is only possible if your APT source-list files still point to stretch and not to stable or buster ; see Раздел A.2, «Checking your APT source-list files».

It is a good idea to remove obsolete packages from your system before upgrading.

4.2.1. Секция proposed-updates

If you have listed the proposed-updates section in your APT source-list files, you should remove it before attempting to upgrade your system. This is a precaution to reduce the likelihood of conflicts.

4.2.2. Неофициальные источники

If you have any non-Debian packages on your system, you should be aware that these may be removed during the upgrade because of conflicting dependencies. If these packages were installed by adding an extra package archive in your APT source-list files, you should check if that archive also offers packages compiled for buster and change the source item accordingly at the same time as your source items for Debian packages.

У некоторых пользователей могут быть установлены неофициальные перенесённые « более новые » версии пакетов, собранные для stretch. Такие пакеты, скорее всего, станут причиной проблем при обновлении, так как они могут вызвать конфликты файлов [4] . В Раздел 4.5, «Возможные проблемы во время обновления» содержится некоторая информация о том, что делать, если возникли файловые конфликты.

4.2.3. Отключение фиксации в APT

Если вы настроили APT на установку некоторых пакетов из дистрибутива, отличного от стабильного (например, тестируемого), вам, возможно, придётся изменить настройки фиксации в APT (хранятся в файле /etc/apt/preferences и каталоге /etc/apt/preferences.d/ ), чтобы стало возможным обновление пакетов до версии нового стабильного выпуска. Более подробную информацию о фиксации пакетов в APT можно найти в apt_preferences (5) .

4.2.4. Проверка состояния пакетов

Независимо от способа обновления, рекомендуется сначала проверить состояние всех пакетов и убедиться, что всем пакетам разрешено обновляться. Следующая команда покажет пакеты установленные частично (Half-Installed), настройка которых не удалась (Failed-Config), а также все пакеты в ошибочных состояниях:

# dpkg --audit

Можно также проверить состояние всех пакетов системы с помощью программы aptitude и таких команд, как

# dpkg -l | pager
# dpkg --get-selections "*" > ~/curr-pkgs.txt

Перед обновлением желательно снять все фиксации с пакетов. Если один из значимых для обновления пакетов зафиксирован, обновление завершится неудачно.

Note that aptitude uses a different method for registering packages that are on hold than apt and dselect . You can identify packages on hold for aptitude with

# aptitude search "~ahold"

If you want to check which packages you had on hold for apt , you should use

# dpkg --get-selections | grep 'hold$'

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

The « hold » package state for apt can be changed using:

# echo package_name hold | dpkg --set-selections

Замените hold на install , чтобы отменить фиксацию.

If there is anything you need to fix, it is best to make sure your APT source-list files still refer to stretch as explained in Раздел A.2, «Checking your APT source-list files».

4.3. Preparing APT source-list files

Before starting the upgrade you must reconfigure APT’s source-list files ( /etc/apt/sources.list and files under /etc/apt/sources.list.d/ ).

APT will consider all packages that can be found via any configured archive, and install the package with the highest version number, giving priority to the first entry in the files. Thus, if you have multiple mirror locations, list first the ones on local hard disks, then CD-ROM s, and then remote mirrors.

На выпуск Debian часто ссылаются по его кодовому имени (например, stretch , buster ) или по его статусу (например, oldstable (старый стабильный), stable (стабильный), testing (тестируемый), unstable (нестабильный)). Ссылки на выпуск по кодовому имени имеют то преимущество, что вы никогда неожиданно для себя не начнёте пользоваться новым выпуском. Поэтому мы здесь так и делаем. В этом случае вам, конечно, придётся самим следить за анонсами новых выпусков. Если вы будете ссылаться на дистрибутив по его статусному имени, то после выхода нового выпуска вы просто увидите большое количество обновлённых пакетов.

Debian предоставляет два информационных списка рассылки, которые помогут вам оставаться в курсе событий и получать важную информацию о выпусках Debian:

  • Подписавшись на информационный список рассылки Debian, вы будете получать уведомления каждый раз, как Проект Debian создаёт новый выпуск. Например, когда buster становится из stable , к примеру, oldstable .
  • Подписавшись на информационный список рассылки Debian по вопросам безопасности, вы будете получать уведомления каждый раз, когда Проект Debian публикую информционное сообщение о безопасности.

4.3.1. Добавление интернет-источников в APT

On new installations the default is for APT to be set up to use the Debian APT CDN service, which should ensure that packages are automatically downloaded from a server near you in network terms. As this is a relatively new service, older installations may have configuration that still points to one of the main Debian Internet servers or one of the mirrors. If you haven’t done so yet, it is recommended to switch over to the use of the CDN service in your APT configuration.

To make use of the CDN service, add a line like this to your APT source configuration (assuming you are using main and contrib ):

deb http://deb.debian.org/debian buster main contrib

After adding your new sources, disable the previously existing « deb » lines by placing a hash sign ( # ) in front of them.

However, if you get better results using a specific mirror that is close to you in network terms, this option is still available.

Debian mirror addresses can be found at https://www.debian.org/distrib/ftplist (look at the « list of Debian mirrors » section).

Например, допустим наиболее близким зеркалом Debian является http://mirrors.kernel.org . Если вы обратитесь к этому зеркалу с помощью веб-браузера, то вы заметите, что основные каталоги организованы следующим образом:

http://mirrors.kernel.org/debian/dists/buster/main/binary-armhf/. http://mirrors.kernel.org/debian/dists/buster/contrib/binary-armhf/.

To configure APT to use a given mirror, add a line like this (again, assuming you are using main and contrib ):

deb http://mirrors.kernel.org/debian buster main contrib

Заметим, что « dists » добавляется автоматически, а параметры после имени выпуска используются для дополнения сетевого пути до реальных каталогов.

Again, after adding your new sources, disable the previously existing archive entries.

4.3.2. Добавление локального зеркала в качестве источника APT

Instead of using remote package mirrors, you may wish to modify the APT source-list files to use a mirror on a local disk (possibly mounted over NFS ).

Например, если ваше зеркало пакетов находится в каталоге /var/local/debian/ , то его основные каталоги будут называться:

/var/local/debian/dists/buster/main/binary-armhf/. /var/local/debian/dists/buster/contrib/binary-armhf/.

Чтобы пакет apt мог использовать этот источник пакетов, добавьте в файл sources.list :

deb file:/var/local/debian buster main contrib

Заметим, что « dists » добавляется автоматически, а параметры после имени выпуска используются для дополнения сетевого пути до реальных каталогов.

After adding your new sources, disable the previously existing archive entries in the APT source-list files by placing a hash sign ( # ) in front of them.

4.3.3. Добавление оптического носителя в качестве источника APT

If you want to use only DVDs (or CDs or Blu-ray Discs), comment out the existing entries in all the APT source-list files by placing a hash sign ( # ) in front of them.

Убедитесь в том, что в файле /etc/fstab есть строка, позволяющая смонтировать компакт-диск в каталог /media/cdrom . Например, если файлом устройства вашего привода чтения компакт-дисков служит /dev/sr0 , то файл /etc/fstab должен содержать строку:

/dev/sr0 /media/cdrom auto noauto,ro 0 0

Обратите внимание на то, что между словами noauto,ro в четвёртом поле строки не должно быть пробелов .

Чтобы проверить, что строка fstab написана верно, вставьте компакт-диск в привод и выполните команды

# mount /media/cdrom # this will mount the CD to the mount point # ls -alF /media/cdrom # this should show the CD's root directory # umount /media/cdrom # this will unmount the CD

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

# apt-cdrom add

для каждого компакт-диска Debian Binary, чтобы добавить все диски в базу данных APT.

4.4. Обновление пакетов

The recommended way to upgrade from previous Debian releases is to use the package management tool apt .

apt is meant for interactive use, and should not be used in scripts. In scripts one should use apt-get , which has a stable output better suitable for parsing.

Не забудьте смонтировать все необходимые разделы (в первую очередь, корневой раздел и каталог /usr ) на чтение и запись. Это можно сделать командой

# mount -o remount,rw /mountpoint 

Next you should double-check that the APT source entries (in /etc/apt/sources.list and files under /etc/apt/sources.list.d/ ) refer either to « buster » or to « stable » . There should not be any sources entries pointing to stretch.

Строки источников для CD-ROM часто ссылаются на « unstable » , хоть это может показаться странным, но исправлять их не нужно .

4.4.1. Запись сеанса

Для записи ваших действий при обновлении настоятельно рекомендуем использовать программу /usr/bin/script . В этом случае, при возникновении каких-либо проблем у вас будет журнал произошедших событий, и если понадобится, вы сможете включить эту информацию в отчёт об ошибке. Чтобы начать запись, выполните команду:

# script -t 2>~/upgrade-busterstep.time -a ~/upgrade-busterstep.script

или похожую. При перезапуске записи (например, при перезагрузке систему) используйте другое значение вместо step , чтобы различать протоколируемые шаги. Не размещайте файл с записью во временных каталогах, таких как /tmp и /var/tmp (файлы в этих каталогах могут быть удалены при обновлении или перезагрузке).

Запись также поможет вам прочитать информацию, которая вышла за пределы экрана. Если вы находитесь перед монитором компьютера просто переключитесь на вторую консоль VT2 (нажав Alt + F2 ) и, войдя в систему, запустите less -R ~root/upgrade-buster.script для просмотра файла.

После завершения обновления можно остановить script , набрав exit в командной строке.

apt will also log the changed package states in /var/log/apt/history.log and the terminal output in /var/log/apt/term.log . dpkg will, in addition, log all package state changes in /var/log/dpkg.log . If you use aptitude , it will also log state changes in /var/log/aptitude .

Если параметром к script указать -t , то вы сможете воспользоваться программой scriptreplay для повтора всего сеанса:

# scriptreplay ~/upgrade-busterstep.time ~/upgrade-busterstep.script

4.4.2. Обновление списка пакетов

Во-первых, нужно обновить список доступных пакетов нового выпуска. Это делается командой:

# apt update

Users of apt-secure may find issues when using aptitude or apt-get . For apt-get, you can use apt-get update —allow-releaseinfo-change .

4.4.3. Проверка доступного пространства для обновления

Перед обновлением всей системы, как описано в Раздел 4.4.5, «Обновление системы», убедитесь, что у вас достаточно места на диске. Сначала все нужные для установки пакеты скачиваются из сети и сохраняются в /var/cache/apt/archives (а на время скачивания, в подкаталог partial/ ), поэтому вы должны проверить место на разделе, который содержит /var/ , так как туда будут временно записаны загруженные пакеты для установки. После загрузки вам, вероятно, понадобится дополнительное место в других разделах файловой системы для установки обновляемых пакетов (скорее всего, они стали больше) и новых пакетов, которые будут установлены из-за обновлений. Если в системе не будет достаточного места, то в конечном счёте это приведёт к неполному обновлению, что позднее бывает сложно исправить.

apt can show you detailed information about the disk space needed for the installation. Before executing the upgrade, you can see this estimate by running:

# apt -o APT::Get::Trivial-Only=true full-upgrade [ . ] XXX upgraded, XXX newly installed, XXX to remove and XXX not upgraded. Need to get xx.xMB of archives. After this operation, AAAMB of additional disk space will be used.

Запуск этой команды в начале процесса обновления может приводить к ошибке по причинам, описанным далее. В этом случае, запуск команды оценки дискового пространства нужно провести после выполнения минимального обновления системы (см. Раздел 4.4.4, «Минимальное обновление системы») и обновления ядра.

If you do not have enough space for the upgrade, apt will warn you with a message like this:

E: You don't have enough free space in /var/cache/apt/archives/.

В этом случае освободите место заранее. Вы можете:

  • Remove packages that have been previously downloaded for installation (at /var/cache/apt/archives ). Cleaning up the package cache by running apt clean will remove all previously downloaded package files.
  • Remove forgotten packages. If you have used aptitude or apt to manually install packages in stretch it will have kept track of those packages you manually installed, and will be able to mark as redundant those packages pulled in by dependencies alone which are no longer needed due to a package being removed. They will not mark for removal packages that you manually installed. To remove automatically installed packages that are no longer used, run:
# apt autoremove
[Примечание] Примечание
Не используйте файловые системы NFS , так как при обновлении могут возникнуть перебои в работе сети.

Например, если у вас есть USB -диск, смонтированный в /media/usbkey :

  1. Удалите пакеты, которые были скачаны при установке ранее:
# apt clean
# cp -ax /var/cache/apt/archives /media/usbkey/
# mount --bind /media/usbkey/archives /var/cache/apt/archives
# umount /media/usbkey/archives

Можно создать временный каталог кэша в любой файловой системе, уже смонтированной в системе.

Note that in order to safely remove packages, it is advisable to switch your APT source-list files back to stretch as described in Раздел A.2, «Checking your APT source-list files».

4.4.4. Минимальное обновление системы

В некоторых случаях выполнение сразу полного обновления (как описано далее) может привести к удалению большого числа пакетов, которые вы хотите оставить. Поэтому мы рекомендуем производить обновление в две стадии — сначала минимальное обновление, чтобы разобраться с конфликтами, а затем полное обновление, как описано в Раздел 4.4.5, «Обновление системы».

Для этого сначала выполните:

# apt-get upgrade

Это приведёт к обновлению только тех пакетов, которые можно обновить без необходимости удаления или установки других пакетов.

Минимальное обновление системы также может оказаться полезным, если в системе мало свободного места и полное обновление запустить из-за этого невозможно.

If the apt-listchanges package is installed, it will (in its default configuration) show important information about upgraded packages in a pager after downloading the packages. Press q after reading to exit the pager and continue the upgrade.

4.4.5. Обновление системы

После выполнения предыдущих шагов теперь можно приступить, собственно, к обновлению. Выполните команду:

# apt full-upgrade

Эта команда произведёт полное обновление системы, установив последние доступные версии всех пакетов и разрешив всех изменившиеся между выпусками зависимости. При необходимости будут установлены новые пакеты (обычно, это новые версии библиотек или переименованные пакеты) и удалены все вызывающие конфликты устаревшие пакеты.

При обновлении с набора компакт-дисков, DVD или дисков Blu-ray система несколько раз попросит вас вставить в привод соответствующий диск. Возможно, вам придётся вставлять один и тот же диск несколько раз. Это вызвано тем, что взаимосвязанные пакеты могут находиться на разных дисках.

New versions of currently installed packages that cannot be upgraded without changing the install status of another package will be left at their current version (displayed as « held back » ). This can be resolved by either using aptitude to choose these packages for installation or by trying apt install package .

4.5. Возможные проблемы во время обновления

В следующем разделе описаны известные проблемы, которые могут возникнуть при обновлении до buster.

4.5.1. Dist-upgrade завершается с ошибкой «Could not perform immediate configuration»

In some cases the apt full-upgrade step can fail after downloading packages with:

E: Could not perform immediate configuration on 'package'. Please see man 5 apt.conf under APT::Immediate-Configure for details.

If that happens, running apt full-upgrade -o APT::Immediate-Configure=0 instead should allow the upgrade to proceed.

Another possible workaround for this problem is to temporarily add both stretch and buster sources to your APT source-list files and run apt update .

4.5.2. Ожидаемые удаления

В процессе обновления до buster может потребоваться удалить пакеты в системе. Точный список пакетов будет зависеть от набора установленных в системе пакетов. В данном документе даны общие советы об удалении, но если у вас имеются сомнения, то перед тем как продолжить, рекомендуется проверить все пакеты, которые предлагаются к удалению. Дополнительную информацию об устаревших пакетах в buster см. в Раздел 4.8, «Устаревшие пакеты».

4.5.3. Конфликты или зацикливание в требованиях предварительной установки

Sometimes it’s necessary to enable the APT::Force-LoopBreak option in APT to be able to temporarily remove an essential package due to a Conflicts/Pre-Depends loop. apt will alert you of this and abort the upgrade. You can work around this by specifying the option -o APT::Force-LoopBreak=1 on the apt command line.

It is possible that a system’s dependency structure can be so corrupt as to require manual intervention. Usually this means using apt or

# dpkg --remove package_name 

чтобы удалить « проблемные » пакеты или

# apt -f install # dpkg --configure --pending

В чрезвычайных случаях вам может потребоваться принудительная переустановка командой типа

# dpkg --install /path/to/package_name.deb 

4.5.4. Файловые конфликты

При обновлении с « чистого » stretch конфликтов файлов быть не должно, но они вполне возможны, если у вас установлены неофициальные адаптации (backports). При конфликте файлов появляются ошибки:

Unpacking (from ) . dpkg: error processing (—install): trying to overwrite ` ‘, which is also in package dpkg-deb: subprocess paste killed by signal (Broken pipe) Errors were encountered while processing:

Конфликт файлов можно попытаться разрешить принудительным удалением пакета, указанного в последней строке сообщения об ошибке:

# dpkg -r --force-depends package_name 

After fixing things up, you should be able to resume the upgrade by repeating the previously described apt commands.

4.5.5. Изменение настроек

Во время обновления система будет задавать вопросы о настройке или перенастройке некоторых пакетов. Если вас спросят, нужно ли заменить какой-то файл в каталоге /etc/init.d или /etc/manpath.config , версией, предоставленной сопровождающим пакета, обычно следует ответить « да » , поскольку иначе будет нарушена целостность системы. Вы всегда сможете вернуть старые настройки, потому что предыдущие файлы настройки будут сохранены с расширением .dpkg-old .

Если вы не знаете, что делать, запишите имя пакета или файла и разберитесь с проблемой позднее. Информацию, выводившуюся на экран во время обновления, вы сможете найти в файле записи программы script.

4.5.6. Изменение консоли сеанса

If you are running the upgrade using the system’s local console you might find that at some points during the upgrade the console is shifted over to a different view and you lose visibility of the upgrade process. For example, this may happen in systems with a graphical interface when the display manager is restarted.

Чтобы восстановить консоль, на которой запущено обновление, нажмите Ctrl + Alt + F1 для перехода обратно на виртуальный терминал 1 (если вы видите графический экран входа в систему) или используйте Alt + F1 (если вы видите локальную консоль в текстовом режиме). Вместо F1 нажмите функциональную клавишу с номером виртуального терминала, в котором запущено обновление. Также вы можете использовать Alt + стрелка влево или Alt + стрелка вправо для переключения между терминалами в текстовом режиме.

4.6. Обновление ядра и сопутствующих пакетов

В этом разделе описано как обновить ядро и указаны потенциальные проблемы, связанные с этим. Вы можете установить один из пакетов linux-image-* , предоставленных Debian, или скомпилировать ядро из исходного кода самостоятельно.

Заметим, что большая часть информации раздела основана на предположении, что вы будете использовать одно из модульных ядер Debian вместе с initramfs-tools и udev . Если вы будете использовать своё собственное ядро, которому не требуется initrd, или вы используете другой генератор initrd, то некоторая информация может быть для вас несущественна.

4.6.1. Установка метапакета ядра

When you full-upgrade from stretch to buster, it is strongly recommended that you install a linux-image-* metapackage, if you have not done so before. These metapackages will automatically pull in a newer version of the kernel during upgrades. You can verify whether you have one installed by running:

# dpkg -l "linux-image*" | grep ^ii | grep -i meta

Если в результате вы ничего не увидели, то вам нужно установить новый пакет linux-image вручную, либо установить метапакет linux-image. Чтобы увидеть список доступных метапакетов linux-image, выполните:

# apt-cache search linux-image- | grep -i meta | grep -v transition

If you are unsure about which package to select, run uname -r and look for a package with a similar name. For example, if you see « 4.9.0-8-amd64 » , it is recommended that you install linux-image-amd64 . You may also use apt to see a long description of each package in order to help choose the best one available. For example:

# apt show linux-image-amd64

You should then use apt install to install it. Once this new kernel is installed you should reboot at the next available opportunity to get the benefits provided by the new kernel version. However, please have a look at Раздел 5.1.12, «То, что следует сделать после обновления и до перезагрузки» before performing the first reboot after the upgrade.

For the more adventurous there is an easy way to compile your own custom kernel on Debian. Install the kernel sources, provided in the linux-source package. You can make use of the deb-pkg target available in the sources’ makefile for building a binary package. More information can be found in the Debian Linux Kernel Handbook, which can also be found as the debian-kernel-handbook package.

If possible, it is to your advantage to upgrade the kernel package separately from the main full-upgrade to reduce the chances of a temporarily non-bootable system. Note that this should only be done after the minimal upgrade process described in Раздел 4.4.4, «Минимальное обновление системы».

4.7. Подготовка к следующему выпуску

Для подготовки к следующему выпуску после обновления можно сделать несколько вещей.

Глава 4. Обновление с Debian 9 (stretch)

Перед обновлением мы рекомендуем вам также прочитать Глава 5, Что нужно знать о buster. Этот раздел описывает потенциальные проблемы, которые не имеют прямого отношения к процессу обновления, но всё же важно узнать о них до установки.

4.1.1. Создание резервной копии всех данных и настроек

Перед обновлением настоятельно рекомендуется сделать резервную копию всей системы или, по крайней мере, всех данных и настроек, которые вы не можете позволить себе потерять. Инструменты для обновления и сам процесс достаточно надёжны, но сбой аппаратного обеспечения в ходе обновления может привести к серьёзному повреждению системы.

В первую очередь необходимо сделать резервную копию содержимого каталогов /etc , /var/lib/dpkg , /var/lib/apt/extended_states и результата работы команды dpkg —get-selections «*» (кавычки важны). Если для управления пакетами вы используете aptitude , то также сделайте резервную копию /var/lib/aptitude/pkgstates .

Обновление само по себе никак не затрагивает каталог /home . Однако некоторые приложения (в частности, некоторые приложения Mozilla, окружения рабочего стола GNOME и KDE) при первом запуске новой версии перезаписывают имеющиеся пользовательские настройки новыми настройками по умолчанию. На всякий случай стоит сделать резервную копию скрытых файлов и каталогов (название которых начинается с точки) из домашних каталогов пользователей. Это поможет вам в случае необходимости восстановить старые настройки. Не лишним будет предупредить пользователей об этой проблеме.

Установка любого пакета должна производиться с привилегиями суперпользователя. Поэтому вы должны либо войти в систему под именем суперпользователя root , либо использовать программы su или sudo , чтобы получить необходимые права.

Для проведения обновления есть несколько предварительных требований; проверьте, что они соблюдаются.

4.1.2. Предварительное информирование пользователей

Желательно заранее сообщать всем пользователям о любых планируемых обновлениях, хотя пользователи, работающие в системе через ssh , не должны испытать особых проблем в процессе обновления и вполне могут продолжать работу.

Если вы хотите принять дополнительные меры предосторожности, создайте резервную копию и размонтируйте раздел /home перед обновлением.

При обновлении до buster потребуется обновить ядро, поэтому потребуется перезагрузка. Обычно, это происходит по окончании обновления.

4.1.3. Подготовка к перерыву в работе служб

При обновлении может потребоваться обновить пакеты для работающих на данной машине служб. В этом случае работа служб будет прервана на время обновления, замены и настройки пакетов.

Точное время простоя служб будет зависеть от количества обновляемых в системе пакетов, а также от времени, затрачиваемое администратором для ответов на вопросы о настройке. Заметим, что если процесс обновления оставить без внимания и не следить за запросами системы,то высока вероятность увеличить недоступность служб [1] на значительный промежуток времени.

Если обновляемая система предоставляет критически важные службы для пользователей или сети [2] , то вы можете сократить время простоя, если сначала выполните минимальное обновление системы (см. Раздел 4.4.4, «Минимальное обновление системы»), затем обновите ядро и перезагрузитесь, а затем обновите пакеты, связанные с вашими критическими службами. Описание обновления этих пакетов перед полным обновлением смотрите в Раздел 4.4.5, «Обновление системы». Такой порядок позволяет оставить работающими критические службы на время прохождения полного обновления и сократить время простоя.

4.1.4. Подготовка к восстановлению

Хотя Debian пытается проверить, что система всегда будет в состоянии загрузиться, есть реальная опасность возникновения проблем после перезагрузки в обновлённую систему. Большая часть возможных проблем описана здесь и далее в следующих главах информации о выпуске.

Поэтому лучше удостовериться, что вы сможете вернуть систему в прежнее состояние, если она не сможет загрузиться или, для систем управляемых удалённо, не заработает сеть.

Если обновление производится удалённо через ssh , рекомендуем вам предусмотреть подключение к локальной консоли сервера через удалённый последовательный терминал. Может случиться так, что после обновления ядра и перезагрузки, вам потребуется исправить системные настройки через локальную консоль. Если система случайно перезагрузится в середине процесса обновления, вам также потребуется локальная консоль для восстановления.

Для аварийного восстановления обычно мы рекомендуем использовать режим восстановления из программы установки Debian buster. Преимущество в использовании программы установки состоит в том, что вы можете выбирать из множества методов установки тот, который лучше подходит в вашей ситуации. Дополнительная информация приведена в разделе « Восстановление сломанной системы » главы 8 руководства по установке и в ЧаВО по программе установки Debian.

Если загрузиться не удалось, вам может потребоваться альтернативный способ загрузки системы для доступа и восстановления. Для этого можно воспользоваться специальным образом восстановления или живым компакт-диском с Linux. После загрузки каким-то из способов, вы сможете смонтировать имеющуюся корневую файловую систему и выполнить в неё chroot , чтобы найти и исправить ошибку.

4.1.4.1. Отладочная оболочка из initrd во время загрузки

Пакет initramfs-tools добавляет отладочную оболочку [3] в создаваемый initrd. Например, если initrd не удастся смонтировать корневую файловую систему, то вы попадёте в эту отладочную оболочку; она предоставляет основные команды, которые помогут вам выяснить в чём дело и, возможно, даже всё исправить.

Что нужно проверить: наличие правильных файлов устройств в каталоге /dev ; какие модули загружены ( cat /proc/modules ); проверить в результатах dmesg отсутствие ошибок при загрузке драйверов. Вывод dmesg также покажет соответствие назначенных файлов устройств дискам; убедитесь, что результатом echo $ROOT является ожидаемое устройство для корневой файловой системы.

Если вы решили проблему, для выхода из отладочной оболочки наберите exit , и процесс загрузки продолжится с места останова. Естественно, вам нужно устранить причину и пересоздать initrd для того, чтобы следующая загрузка прошла без проблем.

4.1.4.2. Отладочная оболочка во время загрузки с использованием systemd

Если не удаётся загрузиться под systemd, можно запустить командную оболочку с правами суперпользователя, изменив строку команд ядра. Если базовая загрузка завершается успешно, но некоторые службы не запускаются, может быть полезным добавить команду systemd.unit=rescue.target к параметрам ядра.

В противном случае параметр ядра systemd.unit=emergency.target как можно раньше предоставит вам командную оболочку с правами суперпользователя. Тем не менее, это выполняется до монтирования корневой файловой системы с правами на чтение. Вам придётся выполнить это вручную с помощью следующей команды:

# mount -o remount,rw /

More information on debugging a broken boot under systemd can be found in the Diagnosing Boot Problems article.

4.1.5. Подготовка безопасного окружения для обновления

If you are using some VPN services (such as tinc ) consider that they might not be available throughout the upgrade process. Please see Раздел 4.1.3, «Подготовка к перерыву в работе служб».

In order to gain extra safety margin when upgrading remotely, we suggest that you run upgrade processes in the virtual console provided by the screen program, which enables safe reconnection and ensures the upgrade process is not interrupted even if the remote connection process temporarily fails.

4.1.6. Verify network interface name support

Systems upgraded from older releases that still use network interfaces with names like eth0 or wlan0 are at risk of losing networking once they switch to buster; see Раздел 5.1.6, «Migrating from legacy network interface names» for migration instructions.

4.2. Checking APT configuration status

The upgrade process described in this chapter has been designed for « pure » Debian stable systems. If your APT configuration mentions additional sources besides stretch, or if you have installed packages from other releases or from third parties, then to ensure a reliable upgrade process you may wish to begin by removing these complicating factors.

The main configuration file that APT uses to decide what sources it should download packages from is /etc/apt/sources.list , but it can also use files in the /etc/apt/sources.list.d/ directory — for details see sources.list(5). If your system is using multiple source-list files then you will need to ensure they stay consistent.

Below there are two methods for finding installed packages that did not come from Debian, using either aptitude or apt-forktracer . Please note that neither of them are 100% accurate (e.g. the aptitude example will list packages that were once provided by Debian but no longer are, such as old kernel packages).

$ aptitude search '~i(!~ODebian)' $ apt-forktracer | sort

Direct upgrades from Debian releases older than 9 (stretch) are not supported. Please follow the instructions in the Release Notes for Debian 9 to upgrade to Debian 9 first.

Эта процедура также предполагает, что ваша система обновлена до последнего выпуска stretch. Если это не так или вы в этом не уверены, следуйте инструкциям из Раздел A.1, «Обновление системы stretch».

You should also make sure the package database is ready before proceeding with the upgrade. If you are a user of another package manager like aptitude or synaptic , review any pending actions. A package scheduled for installation or removal might interfere with the upgrade procedure. Note that correcting this is only possible if your APT source-list files still point to stretch and not to stable or buster ; see Раздел A.2, «Checking your APT source-list files».

It is a good idea to remove obsolete packages from your system before upgrading.

4.2.1. Секция proposed-updates

If you have listed the proposed-updates section in your APT source-list files, you should remove it before attempting to upgrade your system. This is a precaution to reduce the likelihood of conflicts.

4.2.2. Неофициальные источники

If you have any non-Debian packages on your system, you should be aware that these may be removed during the upgrade because of conflicting dependencies. If these packages were installed by adding an extra package archive in your APT source-list files, you should check if that archive also offers packages compiled for buster and change the source item accordingly at the same time as your source items for Debian packages.

У некоторых пользователей могут быть установлены неофициальные перенесённые « более новые » версии пакетов, собранные для stretch. Такие пакеты, скорее всего, станут причиной проблем при обновлении, так как они могут вызвать конфликты файлов [4] . В Раздел 4.5, «Возможные проблемы во время обновления» содержится некоторая информация о том, что делать, если возникли файловые конфликты.

4.2.3. Отключение фиксации в APT

Если вы настроили APT на установку некоторых пакетов из дистрибутива, отличного от стабильного (например, тестируемого), вам, возможно, придётся изменить настройки фиксации в APT (хранятся в файле /etc/apt/preferences и каталоге /etc/apt/preferences.d/ ), чтобы стало возможным обновление пакетов до версии нового стабильного выпуска. Более подробную информацию о фиксации пакетов в APT можно найти в apt_preferences (5) .

4.2.4. Проверка состояния пакетов

Независимо от способа обновления, рекомендуется сначала проверить состояние всех пакетов и убедиться, что всем пакетам разрешено обновляться. Следующая команда покажет пакеты установленные частично (Half-Installed), настройка которых не удалась (Failed-Config), а также все пакеты в ошибочных состояниях:

# dpkg --audit

Можно также проверить состояние всех пакетов системы с помощью программы aptitude и таких команд, как

# dpkg -l | pager
# dpkg --get-selections "*" > ~/curr-pkgs.txt

Перед обновлением желательно снять все фиксации с пакетов. Если один из значимых для обновления пакетов зафиксирован, обновление завершится неудачно.

Note that aptitude uses a different method for registering packages that are on hold than apt and dselect . You can identify packages on hold for aptitude with

# aptitude search "~ahold"

If you want to check which packages you had on hold for apt , you should use

# dpkg --get-selections | grep 'hold$'

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

The « hold » package state for apt can be changed using:

# echo package_name hold | dpkg --set-selections

Замените hold на install , чтобы отменить фиксацию.

If there is anything you need to fix, it is best to make sure your APT source-list files still refer to stretch as explained in Раздел A.2, «Checking your APT source-list files».

4.3. Preparing APT source-list files

Before starting the upgrade you must reconfigure APT’s source-list files ( /etc/apt/sources.list and files under /etc/apt/sources.list.d/ ).

APT will consider all packages that can be found via any configured archive, and install the package with the highest version number, giving priority to the first entry in the files. Thus, if you have multiple mirror locations, list first the ones on local hard disks, then CD-ROM s, and then remote mirrors.

На выпуск Debian часто ссылаются по его кодовому имени (например, stretch , buster ) или по его статусу (например, oldstable (старый стабильный), stable (стабильный), testing (тестируемый), unstable (нестабильный)). Ссылки на выпуск по кодовому имени имеют то преимущество, что вы никогда неожиданно для себя не начнёте пользоваться новым выпуском. Поэтому мы здесь так и делаем. В этом случае вам, конечно, придётся самим следить за анонсами новых выпусков. Если вы будете ссылаться на дистрибутив по его статусному имени, то после выхода нового выпуска вы просто увидите большое количество обновлённых пакетов.

Debian предоставляет два информационных списка рассылки, которые помогут вам оставаться в курсе событий и получать важную информацию о выпусках Debian:

  • Подписавшись на информационный список рассылки Debian, вы будете получать уведомления каждый раз, как Проект Debian создаёт новый выпуск. Например, когда buster становится из stable , к примеру, oldstable .
  • Подписавшись на информационный список рассылки Debian по вопросам безопасности, вы будете получать уведомления каждый раз, когда Проект Debian публикую информционное сообщение о безопасности.

4.3.1. Добавление интернет-источников в APT

On new installations the default is for APT to be set up to use the Debian APT CDN service, which should ensure that packages are automatically downloaded from a server near you in network terms. As this is a relatively new service, older installations may have configuration that still points to one of the main Debian Internet servers or one of the mirrors. If you haven’t done so yet, it is recommended to switch over to the use of the CDN service in your APT configuration.

To make use of the CDN service, add a line like this to your APT source configuration (assuming you are using main and contrib ):

deb http://deb.debian.org/debian buster main contrib

After adding your new sources, disable the previously existing « deb » lines by placing a hash sign ( # ) in front of them.

However, if you get better results using a specific mirror that is close to you in network terms, this option is still available.

Debian mirror addresses can be found at https://www.debian.org/distrib/ftplist (look at the « list of Debian mirrors » section).

Например, допустим наиболее близким зеркалом Debian является http://mirrors.kernel.org . Если вы обратитесь к этому зеркалу с помощью веб-браузера, то вы заметите, что основные каталоги организованы следующим образом:

http://mirrors.kernel.org/debian/dists/buster/main/binary-amd64/. http://mirrors.kernel.org/debian/dists/buster/contrib/binary-amd64/.

To configure APT to use a given mirror, add a line like this (again, assuming you are using main and contrib ):

deb http://mirrors.kernel.org/debian buster main contrib

Заметим, что « dists » добавляется автоматически, а параметры после имени выпуска используются для дополнения сетевого пути до реальных каталогов.

Again, after adding your new sources, disable the previously existing archive entries.

4.3.2. Добавление локального зеркала в качестве источника APT

Instead of using remote package mirrors, you may wish to modify the APT source-list files to use a mirror on a local disk (possibly mounted over NFS ).

Например, если ваше зеркало пакетов находится в каталоге /var/local/debian/ , то его основные каталоги будут называться:

/var/local/debian/dists/buster/main/binary-amd64/. /var/local/debian/dists/buster/contrib/binary-amd64/.

Чтобы пакет apt мог использовать этот источник пакетов, добавьте в файл sources.list :

deb file:/var/local/debian buster main contrib

Заметим, что « dists » добавляется автоматически, а параметры после имени выпуска используются для дополнения сетевого пути до реальных каталогов.

After adding your new sources, disable the previously existing archive entries in the APT source-list files by placing a hash sign ( # ) in front of them.

4.3.3. Добавление оптического носителя в качестве источника APT

If you want to use only DVDs (or CDs or Blu-ray Discs), comment out the existing entries in all the APT source-list files by placing a hash sign ( # ) in front of them.

Убедитесь в том, что в файле /etc/fstab есть строка, позволяющая смонтировать компакт-диск в каталог /media/cdrom . Например, если файлом устройства вашего привода чтения компакт-дисков служит /dev/sr0 , то файл /etc/fstab должен содержать строку:

/dev/sr0 /media/cdrom auto noauto,ro 0 0

Обратите внимание на то, что между словами noauto,ro в четвёртом поле строки не должно быть пробелов .

Чтобы проверить, что строка fstab написана верно, вставьте компакт-диск в привод и выполните команды

# mount /media/cdrom # this will mount the CD to the mount point # ls -alF /media/cdrom # this should show the CD's root directory # umount /media/cdrom # this will unmount the CD

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

# apt-cdrom add

для каждого компакт-диска Debian Binary, чтобы добавить все диски в базу данных APT.

4.4. Обновление пакетов

The recommended way to upgrade from previous Debian releases is to use the package management tool apt .

apt is meant for interactive use, and should not be used in scripts. In scripts one should use apt-get , which has a stable output better suitable for parsing.

Не забудьте смонтировать все необходимые разделы (в первую очередь, корневой раздел и каталог /usr ) на чтение и запись. Это можно сделать командой

# mount -o remount,rw /mountpoint 

Next you should double-check that the APT source entries (in /etc/apt/sources.list and files under /etc/apt/sources.list.d/ ) refer either to « buster » or to « stable » . There should not be any sources entries pointing to stretch.

Строки источников для CD-ROM часто ссылаются на « unstable » , хоть это может показаться странным, но исправлять их не нужно .

4.4.1. Запись сеанса

Для записи ваших действий при обновлении настоятельно рекомендуем использовать программу /usr/bin/script . В этом случае, при возникновении каких-либо проблем у вас будет журнал произошедших событий, и если понадобится, вы сможете включить эту информацию в отчёт об ошибке. Чтобы начать запись, выполните команду:

# script -t 2>~/upgrade-busterstep.time -a ~/upgrade-busterstep.script

или похожую. При перезапуске записи (например, при перезагрузке систему) используйте другое значение вместо step , чтобы различать протоколируемые шаги. Не размещайте файл с записью во временных каталогах, таких как /tmp и /var/tmp (файлы в этих каталогах могут быть удалены при обновлении или перезагрузке).

Запись также поможет вам прочитать информацию, которая вышла за пределы экрана. Если вы находитесь перед монитором компьютера просто переключитесь на вторую консоль VT2 (нажав Alt + F2 ) и, войдя в систему, запустите less -R ~root/upgrade-buster.script для просмотра файла.

После завершения обновления можно остановить script , набрав exit в командной строке.

apt will also log the changed package states in /var/log/apt/history.log and the terminal output in /var/log/apt/term.log . dpkg will, in addition, log all package state changes in /var/log/dpkg.log . If you use aptitude , it will also log state changes in /var/log/aptitude .

Если параметром к script указать -t , то вы сможете воспользоваться программой scriptreplay для повтора всего сеанса:

# scriptreplay ~/upgrade-busterstep.time ~/upgrade-busterstep.script

4.4.2. Обновление списка пакетов

Во-первых, нужно обновить список доступных пакетов нового выпуска. Это делается командой:

# apt update

Users of apt-secure may find issues when using aptitude or apt-get . For apt-get, you can use apt-get update —allow-releaseinfo-change .

4.4.3. Проверка доступного пространства для обновления

Перед обновлением всей системы, как описано в Раздел 4.4.5, «Обновление системы», убедитесь, что у вас достаточно места на диске. Сначала все нужные для установки пакеты скачиваются из сети и сохраняются в /var/cache/apt/archives (а на время скачивания, в подкаталог partial/ ), поэтому вы должны проверить место на разделе, который содержит /var/ , так как туда будут временно записаны загруженные пакеты для установки. После загрузки вам, вероятно, понадобится дополнительное место в других разделах файловой системы для установки обновляемых пакетов (скорее всего, они стали больше) и новых пакетов, которые будут установлены из-за обновлений. Если в системе не будет достаточного места, то в конечном счёте это приведёт к неполному обновлению, что позднее бывает сложно исправить.

apt can show you detailed information about the disk space needed for the installation. Before executing the upgrade, you can see this estimate by running:

# apt -o APT::Get::Trivial-Only=true full-upgrade [ . ] XXX upgraded, XXX newly installed, XXX to remove and XXX not upgraded. Need to get xx.xMB of archives. After this operation, AAAMB of additional disk space will be used.

Запуск этой команды в начале процесса обновления может приводить к ошибке по причинам, описанным далее. В этом случае, запуск команды оценки дискового пространства нужно провести после выполнения минимального обновления системы (см. Раздел 4.4.4, «Минимальное обновление системы») и обновления ядра.

If you do not have enough space for the upgrade, apt will warn you with a message like this:

E: You don't have enough free space in /var/cache/apt/archives/.

В этом случае освободите место заранее. Вы можете:

  • Remove packages that have been previously downloaded for installation (at /var/cache/apt/archives ). Cleaning up the package cache by running apt clean will remove all previously downloaded package files.
  • Remove forgotten packages. If you have used aptitude or apt to manually install packages in stretch it will have kept track of those packages you manually installed, and will be able to mark as redundant those packages pulled in by dependencies alone which are no longer needed due to a package being removed. They will not mark for removal packages that you manually installed. To remove automatically installed packages that are no longer used, run:
# apt autoremove
[Примечание] Примечание
Не используйте файловые системы NFS , так как при обновлении могут возникнуть перебои в работе сети.

Например, если у вас есть USB -диск, смонтированный в /media/usbkey :

  1. Удалите пакеты, которые были скачаны при установке ранее:
# apt clean
# cp -ax /var/cache/apt/archives /media/usbkey/
# mount --bind /media/usbkey/archives /var/cache/apt/archives
# umount /media/usbkey/archives

Можно создать временный каталог кэша в любой файловой системе, уже смонтированной в системе.

Note that in order to safely remove packages, it is advisable to switch your APT source-list files back to stretch as described in Раздел A.2, «Checking your APT source-list files».

4.4.4. Минимальное обновление системы

В некоторых случаях выполнение сразу полного обновления (как описано далее) может привести к удалению большого числа пакетов, которые вы хотите оставить. Поэтому мы рекомендуем производить обновление в две стадии — сначала минимальное обновление, чтобы разобраться с конфликтами, а затем полное обновление, как описано в Раздел 4.4.5, «Обновление системы».

Для этого сначала выполните:

# apt-get upgrade

Это приведёт к обновлению только тех пакетов, которые можно обновить без необходимости удаления или установки других пакетов.

Минимальное обновление системы также может оказаться полезным, если в системе мало свободного места и полное обновление запустить из-за этого невозможно.

If the apt-listchanges package is installed, it will (in its default configuration) show important information about upgraded packages in a pager after downloading the packages. Press q after reading to exit the pager and continue the upgrade.

4.4.5. Обновление системы

После выполнения предыдущих шагов теперь можно приступить, собственно, к обновлению. Выполните команду:

# apt full-upgrade

Эта команда произведёт полное обновление системы, установив последние доступные версии всех пакетов и разрешив всех изменившиеся между выпусками зависимости. При необходимости будут установлены новые пакеты (обычно, это новые версии библиотек или переименованные пакеты) и удалены все вызывающие конфликты устаревшие пакеты.

При обновлении с набора компакт-дисков, DVD или дисков Blu-ray система несколько раз попросит вас вставить в привод соответствующий диск. Возможно, вам придётся вставлять один и тот же диск несколько раз. Это вызвано тем, что взаимосвязанные пакеты могут находиться на разных дисках.

New versions of currently installed packages that cannot be upgraded without changing the install status of another package will be left at their current version (displayed as « held back » ). This can be resolved by either using aptitude to choose these packages for installation or by trying apt install package .

4.5. Возможные проблемы во время обновления

В следующем разделе описаны известные проблемы, которые могут возникнуть при обновлении до buster.

4.5.1. Dist-upgrade завершается с ошибкой «Could not perform immediate configuration»

In some cases the apt full-upgrade step can fail after downloading packages with:

E: Could not perform immediate configuration on 'package'. Please see man 5 apt.conf under APT::Immediate-Configure for details.

If that happens, running apt full-upgrade -o APT::Immediate-Configure=0 instead should allow the upgrade to proceed.

Another possible workaround for this problem is to temporarily add both stretch and buster sources to your APT source-list files and run apt update .

4.5.2. Ожидаемые удаления

В процессе обновления до buster может потребоваться удалить пакеты в системе. Точный список пакетов будет зависеть от набора установленных в системе пакетов. В данном документе даны общие советы об удалении, но если у вас имеются сомнения, то перед тем как продолжить, рекомендуется проверить все пакеты, которые предлагаются к удалению. Дополнительную информацию об устаревших пакетах в buster см. в Раздел 4.8, «Устаревшие пакеты».

4.5.3. Конфликты или зацикливание в требованиях предварительной установки

Sometimes it’s necessary to enable the APT::Force-LoopBreak option in APT to be able to temporarily remove an essential package due to a Conflicts/Pre-Depends loop. apt will alert you of this and abort the upgrade. You can work around this by specifying the option -o APT::Force-LoopBreak=1 on the apt command line.

It is possible that a system’s dependency structure can be so corrupt as to require manual intervention. Usually this means using apt or

# dpkg --remove package_name 

чтобы удалить « проблемные » пакеты или

# apt -f install # dpkg --configure --pending

В чрезвычайных случаях вам может потребоваться принудительная переустановка командой типа

# dpkg --install /path/to/package_name.deb 

4.5.4. Файловые конфликты

При обновлении с « чистого » stretch конфликтов файлов быть не должно, но они вполне возможны, если у вас установлены неофициальные адаптации (backports). При конфликте файлов появляются ошибки:

Unpacking (from ) . dpkg: error processing (—install): trying to overwrite ` ‘, which is also in package dpkg-deb: subprocess paste killed by signal (Broken pipe) Errors were encountered while processing:

Конфликт файлов можно попытаться разрешить принудительным удалением пакета, указанного в последней строке сообщения об ошибке:

# dpkg -r --force-depends package_name 

After fixing things up, you should be able to resume the upgrade by repeating the previously described apt commands.

4.5.5. Изменение настроек

Во время обновления система будет задавать вопросы о настройке или перенастройке некоторых пакетов. Если вас спросят, нужно ли заменить какой-то файл в каталоге /etc/init.d или /etc/manpath.config , версией, предоставленной сопровождающим пакета, обычно следует ответить « да » , поскольку иначе будет нарушена целостность системы. Вы всегда сможете вернуть старые настройки, потому что предыдущие файлы настройки будут сохранены с расширением .dpkg-old .

Если вы не знаете, что делать, запишите имя пакета или файла и разберитесь с проблемой позднее. Информацию, выводившуюся на экран во время обновления, вы сможете найти в файле записи программы script.

4.5.6. Изменение консоли сеанса

If you are running the upgrade using the system’s local console you might find that at some points during the upgrade the console is shifted over to a different view and you lose visibility of the upgrade process. For example, this may happen in systems with a graphical interface when the display manager is restarted.

Чтобы восстановить консоль, на которой запущено обновление, нажмите Ctrl + Alt + F1 для перехода обратно на виртуальный терминал 1 (если вы видите графический экран входа в систему) или используйте Alt + F1 (если вы видите локальную консоль в текстовом режиме). Вместо F1 нажмите функциональную клавишу с номером виртуального терминала, в котором запущено обновление. Также вы можете использовать Alt + стрелка влево или Alt + стрелка вправо для переключения между терминалами в текстовом режиме.

4.6. Обновление ядра и сопутствующих пакетов

В этом разделе описано как обновить ядро и указаны потенциальные проблемы, связанные с этим. Вы можете установить один из пакетов linux-image-* , предоставленных Debian, или скомпилировать ядро из исходного кода самостоятельно.

Заметим, что большая часть информации раздела основана на предположении, что вы будете использовать одно из модульных ядер Debian вместе с initramfs-tools и udev . Если вы будете использовать своё собственное ядро, которому не требуется initrd, или вы используете другой генератор initrd, то некоторая информация может быть для вас несущественна.

4.6.1. Установка метапакета ядра

When you full-upgrade from stretch to buster, it is strongly recommended that you install a linux-image-* metapackage, if you have not done so before. These metapackages will automatically pull in a newer version of the kernel during upgrades. You can verify whether you have one installed by running:

# dpkg -l "linux-image*" | grep ^ii | grep -i meta

Если в результате вы ничего не увидели, то вам нужно установить новый пакет linux-image вручную, либо установить метапакет linux-image. Чтобы увидеть список доступных метапакетов linux-image, выполните:

# apt-cache search linux-image- | grep -i meta | grep -v transition

If you are unsure about which package to select, run uname -r and look for a package with a similar name. For example, if you see « 4.9.0-8-amd64 » , it is recommended that you install linux-image-amd64 . You may also use apt to see a long description of each package in order to help choose the best one available. For example:

# apt show linux-image-amd64

You should then use apt install to install it. Once this new kernel is installed you should reboot at the next available opportunity to get the benefits provided by the new kernel version. However, please have a look at Раздел 5.1.12, «То, что следует сделать после обновления и до перезагрузки» before performing the first reboot after the upgrade.

For the more adventurous there is an easy way to compile your own custom kernel on Debian. Install the kernel sources, provided in the linux-source package. You can make use of the deb-pkg target available in the sources’ makefile for building a binary package. More information can be found in the Debian Linux Kernel Handbook, which can also be found as the debian-kernel-handbook package.

If possible, it is to your advantage to upgrade the kernel package separately from the main full-upgrade to reduce the chances of a temporarily non-bootable system. Note that this should only be done after the minimal upgrade process described in Раздел 4.4.4, «Минимальное обновление системы».

4.7. Подготовка к следующему выпуску

Для подготовки к следующему выпуску после обновления можно сделать несколько вещей.

Обновление Debian 8 до 9

Недавно состоялся финальный стабильный релиз Debian 9 и теперь стало возможным обновление Debian 8 до 9. В этой системе было достаточно много обновлений, кроме обновления версий программ, была удалена поддержка некоторых функций, например, была удалена поддержка FTP репозиториев, а все исполняемые файлы собраны с поддержкой PIE.

Информацию об опасных изменениях смотрите на официальном сайте, а в этой статье мы рассмотрим обновление Debian 8 до 9. Я буду предполагать, что вы работаете от имени суперпользователя, поскольку для выполнения большинства команд нужны права root.

Обновление Debian до 9

Шаг 1. Резервная копия

Если вы обновляете производственный сервер — лучше сделать резервную копию всех важных данных, чтобы ничего не потерять в случае ошибки. Можно использовать, например, rsnapshot.

Также сделайте резервную копию баз данных, если вы их используете. Дело в том, что в Debian 9 база данных MySQL будет заменена на MariaDB, формат которой не является бинарно совместимым с MySQL. Во время обновления базы будут обновлены автоматически, но если возникнут какие-либо проблемы, то вы не сможете восстановить ваши данные без резервной копии. Далее, проверим текущую версию системы:

Также можно посмотреть вывод команды:

Шаг 2. Обновление текущей системы

Чтобы обновить Debian до 9 без ошибок нужно сначала установить все обновления для текущего выпуска. Для этого выполните такие команды:

apt-get update
# apt-get upgrade
# apt-get dist-upgrade

Если в вашей системе есть сторонние программное обеспечение, которое было удалено из стандартных репозиториев или установленное из сторонних источников, то шансы на успешное обновление сильно уменьшаются. Посмотреть такие пакеты можно с помощью команды:

aptitude search ‘~o’

Удалите их все. Далее, используйте такую команду чтобы проверить правильность установки всех пакетов:

Перед тем как перейти дальше, исправьте все проблемы. Затем перезагрузите компьютер:

Шаг 3. Настройка sources.list

Мы будем обновлять систему вручную. Это значит, что просто заменим старые репозитории на новые и выполним обновление. По умолчанию файл репозиториев /etc/apt/sources.list в Debian 8 выглядит вот так:

Нам предстоит заменить все вхождения слова Jessie на stretch, должно получиться вот так:

deb http://httpredir.debian.org/debian stretch main contrib
deb http://security.debian.org/ stretch/updates main

Можно не редактировать файлы вручную, а использовать утилиту sed:

sed -i ‘s/jessie/stretch/g’ /etc/apt/sources.list

Далее, запустите обновление списка пакетов из репозиториев:

Шаг 4. Обновление Debian

Перед тем как начать обновление, посмотрите сколько места на диске вам потребуется такой командой:

apt -o APT::Get::Trivial-Only=true dist-upgrade

Дальше убедитесь, что на корневом разделе места достаточно для распаковки всех файлов:

И только теперь можно запустить обновление. Выполните эти две команды:

apt upgrade
# apt dist-upgrade

После завершения работы команд, а это может занять достаточно много времени, нужно перезагрузить компьютер:

Задача debian 8 обновить до debian 9 полностью выполнена.

Шаг 5. Проверка

Обновление до Debian 9 завершено, и теперь вы можете посмотреть, действительно ли система была обновлена. Проверьте версию ядра:

И посмотрите версию дистрибутива:

Можно еще раз проверить нет ли в системе устаревших пакетов, которые могут вызвать проблемы:

aptitude search ‘~o’

Выводы

В этой статье мы рассмотрели как обновить debian 8 до debian 9. Как видите, это было не так сложно, правда, обновление может занять достаточно много времени, учитывая что системе нужно скачать больше количество пакетов из интернета. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение видео с обзором Debian 9:

Похожие записи

Оцените статью

(13 оценок, среднее: 4,92 из 5)

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

5 комментариев к “Обновление Debian 8 до 9”

Арчешкольник

Ох уж этот дебилиан.В арче в крыске у whisker menu уже с пол года версия 1.7.2
У новоиспечённого сабжа 1.6.2 без вожможности в настройках убрать имя катгорий,оставив только иконки,что здорово экономит пространство на экране ноута.
И так со всеми пакетами.Не успел выйти,а уже устарел.
А ведь на этом людям ещё пару лет сидеть. Ответить

не знай, не знай. Пытался на нескольких дистрах поднять на микрике ген8 проброс видяшки в гостя получилось только на:
Last login: Thu Jun 22 17:24:36 2017 from 192.168.11.107
dis@HP-Boy:~$ uname -a
Linux HP-Boy 4.9.18-vanilla #1 SMP Sat Jun 3 08:19:52 MSK 2017 x86_64 GNU/Linux
dis@HP-Boy:~$ cat /etc/os-release
PRETTY_NAME=»Debian GNU/Linux 9 (stretch)»
NAME=»Debian GNU/Linux»
VERSION_ID=»9″
VERSION=»9 (stretch)»
/> HOME_URL=»https://www.debian.org/»
SUPPORT_URL=»https://www.debian.org/support»
BUG_REPORT_URL=»https://bugs.debian.org/»
dis@HP-Boy:~$ virsh version
Compiled against library: libvirt 3.0.0
Using library: libvirt 3.0.0
Using API: QEMU 3.0.0
Running hypervisor: QEMU 2.8.1 dis@HP-Boy:~$ uptime
22:27:55 up 14 days, 3:41, 2 users, load average: 0,69, 0,35, 0,40
Для вас есть почта в /var/mail/dis
dis@HP-Boy:~$ чутка патченное дебиановское бекпортированное ядро — я доволен. Не скрою — дальше бы пытался взбодрить железку арчем. Но таки арч будет гостем)) следующие лет пять. Ответить

Все делал как книга пишет))) но ни чего с етого не получилось((( Ответить

Полчаса назад как обновил 8.4 до 9.3. Всё верно в статье написано. Только в конце добавьте строку с удалением конфликтных пакетов: aptitude search ‘~o’ && apt autoremove или apt search ‘~o’ && apt autoremove (на случай, если aptitude не установлен). Ответить

После этого проделанного, у меня перестал работать ssh и возможно ещё другие сервисы. Что делать? Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *