Как обновить debian 8 jessie до debian 9 stretch

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

17 июня 2017 года вышло очередное обновление популярного linux дистрибутива Debian. Это уже 9-й выпуск Debian под кодовым названием Stretch. Я подробно расскажу, как выполнить обновление с предыдущего выпуска Debian 8 Jessie до Debian 9 Stretch. Процесс обновления не сложный, выполняется штатными средствами с помощью apt.

Введение

Подробную информацию о новой версии Debian можно узнать из официальной новости. Из наиболее значимых изменений можно отметить:

  • Замена пакета mysql на mariadb. Ранее этот шаг был сделан на centos. Теперь и debian решили использовать по-умолчанию mariadb.
  • Инсталлятор теперь по-умолчанию использует графический режим.
  • В состав системы включены инструменты по управлению nftables — новый firewall, который нацелен на замену iptables.
  • Появился новый репозиторий dbg-sym с пакетами для отладки.
  • В новый дистрибутив внедрена система предсказуемого именования сетевых интерфейсов. Вместо eth0, eth1 и т.д. будет использована информация в зависимости от возможностей биоса — enoN, ensN, enpNsM. Если параметры новой разметки интерфейсов будут недоступны, будут использоваться старые. В общем и целом это должно предотвратить ситуацию, когда после добавления нового сетевого интерфейса, изменяются имена в системе уже существующих адаптеров.

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

Подготовка сервера к обновлению

Будем обновлять следующую систему:

# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.7 (jessie) Release: 8.7 Codename: jessie

Для нее мы проведем обновление до 9-й версии Stretch.

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

Я рекомендую сделать резервную копию папок: /etc, /var/lib/dpkg, файла /var/lib/apt/extended_states. Сохраните вывод команды:

# dpkg —get-selections «*»

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

Теперь обновим текущую систему Jessie:

# apt update # apt upgrade # apt dist-upgrade

Заменяем репозитории в файле /etc/apt/sources.list. Я предпочитаю использовать репозиторий яндекса — http://mirror.yandex.ru. Комментируем или удаляем все содержимое файла и добавляем следующие строки:

deb http://mirror.yandex.ru/debian stretch main deb-src http://mirror.yandex.ru/debian stretch main deb http://mirror.yandex.ru/debian stretch-updates main deb-src http://mirror.yandex.ru/debian stretch-updates main deb http://security.debian.org/ stretch/updates main deb-src http://security.debian.org/ stretch/updates main

Обновляем список доступных пакетов для нового выпуска:

# apt update

Обновление debian с 8 до 9

Обновление системы будем делать в 2 этапа. Сначала минимальное обновление, потом полное. Делаем минимальное обновление:

# apt upgrade

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

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

После завершения минимального обновления debian, запускаем полное:

# apt dist-upgrade

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

Если у вас была установлена база данных mysql, то она автоматически будет заменена на mariadb.

Во время обновления пакетов вам могут быть заданы вопросы по поводу конфигурационных файлов. Это зависит от конкретного набора софта. Я рекомендую сохранять старые конфиги. Если с ними будут какие-то проблемы, то потом в ручном режиме их исправлять. Мне кажется так проще, чем переносить конфигурацию со старого файла в новый.

После завершения работы команды apt dist-upgrade обновление завершено. Можно перезагружаться:

# reboot

Проверяем версию:

# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 9.0 (stretch) Release: 9.0 Codename: stretch

Обновление jessie прошло успешно. На выходе имеем последнюю версию Debian 9.0 Stretch.

Помогла статья? Есть возможность отблагодарить автора

Дополнительные материалы по Debian

Настройки системыНастройка программных комплексовРазное
Рекомендую полезные материалы по Debian:
Подробная установка Debian 9 Stratch с помощью графического инсталлятора со скриншотами и пояснениями к каждому пункту установщика.Подробное описание настройки сети в Debian — задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др.
 Подробное описание установки гипервизора proxmox на raid1 mdadm на базе операционной системы Debian 8. Приведены практические советы по настройке.Чистая на сервер под управлением Debian 8. Никаких дополнений и GUI, только vanilla asterisk.Рассказ об установке и небольшой настройке сервера бд postgresql для работы с базами 1С. Задача не сложная, но есть небольшие нюансы как по настройке, так и по выбору дистрибутива.
Ускорение работы 1С с postgresql и диагностика проблем производительности

Источник: https://serveradmin.ru/obnovlenie-debian-8-jessie-do-9-stretch/

Как обновить Debian 8 Jessie до Debian 9 Stretch

Если вам не хочется делать свежую установку Debian 9 Stretch, то можете просто обновиться с Debian 8 Jessie.

Перед обновлением имейте в виду следующее:

  • Обновиться до Debian 9 Stretch можно только с Debian 8 Jessie. Если вы пользуетесь более старой версией, то сперва нужно обновиться до Debian 8 Jessie.
  • Обновление затрагивает ядро Линукс и это означает, что перезагрузка обязательна.
  • Рекомендуется сделать бекап всех важных файлов.

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

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

$ cat /etc/debian_version
8.8

  1. Теперь можно приступать к обновлению системы. Но перед началом обновления, вам также нужно убедиться, что в системы установлены самые новые версии пакетов:

$ sudo apt-get update
$ sudo apt-get upgrade

  1. После этого нужно отредактировать файл /etc/apt/sources.list и заменить все упоминания jessie словом stretch.
Читайте также:  Установить рабочее окружение pantheon в ubuntu 16.04

Допустим файл выглядит так:

deb http://debian.uberglobalmirror.com/debian/ jessie main
deb-src http://debian.uberglobalmirror.com/debian/ jessie main deb http://security.debian.org/ jessie/updates main contrib
deb-src http://security.debian.org/ jessie/updates main contrib # jessie-updates, previously known as 'volatile'
deb http://debian.uberglobalmirror.com/debian/ jessie-updates main contrib
deb-src http://debian.uberglobalmirror.com/debian/ jessie-updates main contrib

После ваших изменений он должен выглядеть примерно так:

deb http://debian.uberglobalmirror.com/debian/ stretch main
deb-src http://debian.uberglobalmirror.com/debian/ stretch main deb http://security.debian.org/ stretch/updates main contrib
deb-src http://security.debian.org/ stretch/updates main contrib # stretch-updates, previously known as 'volatile'
deb http://debian.uberglobalmirror.com/debian/ stretch-updates main contrib
deb-src http://debian.uberglobalmirror.com/debian/ stretch-updates main contrib

Если не желаете делать это вручную, воспользуйтесь командой sed:

$ sed -i 's/jessie/stretch/g' /etc/apt/sources.list

  1. Рекомендуется пользоваться командой apt-get для обновления системы. Первым делом нужно обновить список доступных пакетов:

$ sudo apt-get update

  1. Теперь, когда список доступных пакетов был обновлен, выполните команду ниже чтобы запустить минимальное обновление:

$ sudo apt-get upgrade

  1. Теперь все готово для выполнения полного обновления системы:

$ sudo apt-get dist-upgrade

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

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

$ sudo apt-get autoremove

  1. Все, что осталось сделать — перезагрузить систему. Чтобы проверить, что вы пользуетесь Debian 9 Stretch, можете выполнить команду ниже:

$ uname -a
Linux debian8 4.9.0.3-amd64 #1 SMP Debian 4.9.30-2 (2017-06-12) x86_64 GNU/Linux

Источник: https://geeksmagazine.org/post/462/kak-obnovit-debian-8-jessie-do-debian-9-stretch

Chapter 4. Upgrades from Debian 8 (jessie)

4.1. Preparing for the upgrade

We suggest that before upgrading you also read the information in Chapter 5, Issues to be aware of for stretch. That chapter covers potential issues which are not directly related to the upgrade process but could still be important to know about before you begin.

4.1.1. Back up any data or configuration information

Before upgrading your system, it is strongly recommended that you make a full backup, or at least back up any data or configuration information you can't afford to lose. The upgrade tools and process are quite reliable, but a hardware failure in the middle of an upgrade could result in a severely damaged system.

The main things you'll want to back up are the contents of /etc, /var/lib/dpkg, /var/lib/apt/extended_states and the output of dpkg —get-selections «*» (the quotes are important). If you use aptitude to manage packages on your system, you will also want to back up /var/lib/aptitude/pkgstates.

The upgrade process itself does not modify anything in the /home directory. However, some applications (e.g.

parts of the Mozilla suite, and the GNOME and KDE desktop environments) are known to overwrite existing user settings with new defaults when a new version of the application is first started by a user.

As a precaution, you may want to make a backup of the hidden files and directories (“dotfiles”) in users' home directories. This backup may help to restore or recreate the old settings. You may also want to inform users about this.

Any package installation operation must be run with superuser privileges, so either log in as root or use su or sudo to gain the necessary access rights.

The upgrade has a few preconditions; you should check them before actually executing the upgrade.

4.1.2. Inform users in advance

It's wise to inform all users in advance of any upgrades you're planning, although users accessing your system via an ssh connection should notice little during the upgrade, and should be able to continue working.

If you wish to take extra precautions, back up or unmount the /home partition before upgrading.

You will have to do a kernel upgrade when upgrading to stretch, so a reboot will be necessary. Typically, this will be done after the upgrade is finished.

4.1.3. Prepare for downtime on services

There might be services that are offered by the system which are associated with packages that will be included in the upgrade. If this is the case, please note that, during the upgrade, these services will be stopped while their associated packages are being replaced and configured. During this time, these services will not be available.

The precise downtime for these services will vary depending on the number of packages being upgraded in the system, and it also includes the time the system administrator spends answering any configuration questions from package upgrades. Notice that if the upgrade process is left unattended and the system requests input during the upgrade there is a high possibility of services being unavailable for a significant period of time.

If the system being upgraded provides critical services for your users or the network, you can reduce the downtime if you do a minimal system upgrade, as described in Section 4.4.

4, “Minimal system upgrade”, followed by a kernel upgrade and reboot, and then upgrade the packages associated with your critical services. Upgrade these packages prior to doing the full upgrade described in Section 4.4.5, “Upgrading the system”.

This way you can ensure that these critical services are running and available through the full upgrade process, and their downtime is reduced.

4.1.4. Prepare for recovery

Although Debian tries to ensure that your system stays bootable at all times, there is always a chance that you may experience problems rebooting your system after the upgrade. Known potential issues are documented in this and the next chapters of these Release Notes.

For this reason it makes sense to ensure that you will be able to recover if your system should fail to reboot or, for remotely managed systems, fail to bring up networking.

Читайте также:  Обновлен клиент steam для linux

If you are upgrading remotely via an ssh link it is recommended that you take the necessary precautions to be able to access the server through a remote serial terminal.

There is a chance that, after upgrading the kernel and rebooting, you will have to fix the system configuration through a local console.

Also, if the system is rebooted accidentally in the middle of an upgrade there is a chance you will need to recover using a local console.

For emergency recovery we generally recommend using the rescue mode of the stretch Debian Installer. The advantage of using the installer is that you can choose between its many methods to find one that best suits your situation. For more information, please consult the section “Recovering a Broken System” in chapter 8 of the Installation Guide and the Debian Installer FAQ.

If that fails, you will need an alternative way to boot your system so you can access and repair it. One option is to use a special rescue image or a Linux live CD. After booting from that, you should be able to mount your root file system and chroot into it to investigate and fix the problem.

4.1.4.1. Debug shell during boot using initrd

The initramfs-tools package includes a debug shell in the initrds it generates. If for example the initrd is unable to mount your root file system, you will be dropped into this debug shell which has basic commands available to help trace the problem and possibly fix it.

Basic things to check are: presence of correct device files in /dev; what modules are loaded (cat /proc/modules); output of dmesg for errors loading drivers.

The output of dmesg will also show what device files have been assigned to which disks; you should check that against the output of echo $ROOT to make sure that the root file system is on the expected device.

If you do manage to fix the problem, typing exit will quit the debug shell and continue the boot process at the point it failed. Of course you will also need to fix the underlying problem and regenerate the initrd so the next boot won't fail again.

4.1.4.2. Debug shell during boot using systemd

If the boot fails under systemd, it is possible to obtain a debug root shell by changing the kernel command line. If the basic boot succeeds, but some services fail to start, it may be useful to add systemd.unit=rescue.target to the kernel parameters.

Otherwise, the kernel parameter systemd.unit=emergency.target will provide you with a root shell at the earliest possible point. However, this is done before mounting the root file system with read-write permissions. You will have to do that manually with:

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. Prepare a safe environment for the upgrade

The distribution upgrade should be done either locally from a textmode virtual console (or a directly connected serial terminal), or remotely via an ssh link.

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 fails.

Important
You should not upgrade using telnet, rlogin, rsh, or from an X session managed by xdm, gdm or kdm etc. on the machine you are upgrading. That is because each of those services may well be terminated during the upgrade, which can result in an inaccessible system that is only half-upgraded. Use of the GNOME application update-manager is strongly discouraged for upgrades to new releases, as this tool relies on the desktop session remaining active.

4.2. Checking system status

The upgrade process described in this chapter has been designed for upgrades from “pure” jessie systems without third-party packages. For the greatest reliability of the upgrade process, you may wish to remove third-party packages from your system before you begin upgrading.

Below there are two methods for finding such packages by 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 8 (jessie) are not supported. Please follow the instructions in the Release Notes for Debian 8 to upgrade to 8 first.

This procedure also assumes your system has been updated to the latest point release of jessie. If you have not done this or are unsure, follow the instructions in Section A.1, “Upgrading your jessie system”.

4.2.1. Review actions pending in package manager

In some cases, the use of apt-get for installing packages instead of aptitude might make aptitude consider a package as “unused” and schedule it for removal. In general, you should make sure the system is fully up-to-date and “clean” before proceeding with the upgrade.

Because of this you should review if there are any pending actions in the package manager aptitude.

If a package is scheduled for removal or update in the package manager, it might negatively impact the upgrade procedure. Note that correcting this is only possible if your sources.

list still points to jessie and not to stable or stretch; see Section A.2, “Checking your sources list”.

To perform this review, launch aptitude in full-terminal mode and press g (“Go”). If it shows any actions, you should review them and either fix them or implement the suggested actions. If no actions are suggested you will be presented with a message saying “No packages are scheduled to be installed, removed, or upgraded”.

Читайте также:  Лучшие дистрибутивы linux для новичков

4.2.2. Disabling APT pinning

If you have configured APT to install certain packages from a distribution other than stable (e.g. from testing), you may have to change your APT pinning configuration (stored in /etc/apt/preferences and /etc/apt/preferences.d/) to allow the upgrade of packages to the versions in the new stable release. Further information on APT pinning can be found in apt_preferences(5).

4.2.3. Checking packages status

Regardless of the method used for upgrading, it is recommended that you check the status of all packages first, and verify that all packages are in an upgradable state. The following command will show any packages which have a status of Half-Installed or Failed-Config, and those with any error status.

# dpkg —audit

You could also inspect the state of all packages on your system using aptitude or with commands such as

# dpkg -l | pager

or

# dpkg —get-selections «*» > ~/curr-pkgs.txt

It is desirable to remove any holds before upgrading. If any package that is essential for the upgrade is on hold, the upgrade will fail.

Note that aptitude uses a different method for registering packages that are on hold than apt-get 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-get, you should use

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

If you changed and recompiled a package locally, and didn't rename it or put an epoch in the version, you must put it on hold to prevent it from being upgraded.

The “hold” package state for apt-get can be changed using:

# echo package_name hold | dpkg —set-selections

Replace hold with install to unset the “hold” state.

If there is anything you need to fix, it is best to make sure your sources.list still refers to jessie as explained in Section A.2, “Checking your sources list”.

4.2.4. The proposed-updates section

Источник: https://www.debian.org/releases/stable/i386/release-notes/ch-upgrading

Обновление Debian 8 Jessie до Debian 9 Stretch и возможные ошибки

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

А именно:
Папка /var — там у меня находятся все сайты.
Папка /etc — конфиги
Ну и конечно все бд сразу в sql формате. На случай, чтобы если совсем всё доломается, можно было быстро развернуть эти сайты обратно.

Кстати, если вы не сохранили свои базы, их всё ещё можно достать. Восстановление базы данных MySQL innoDB из файлов ibd и frm

И очень зря боялся, процедура пошла как по маслу. Сначала опишу ошибки, которые встретились лично мне.
Вернее даже ошибка. Единственная ошибка, которую я словил, это была ошибка dovecot, который с обновлением забыл старый протокол SSLv2.
Саму ошибку можно встретить в логах почты: /var/log/mail.log и выглядеть она может либо так:

dovecot: pop3-login: Fatal: Invalid ssl_protocols setting: Unknown protocol 'SSLv2'

либо так:

dovecot: imap-login: Fatal: Invalid ssl_protocols setting: Unknown protocol 'SSLv2'

И исправляется это очень легко. Достаточно открыть конфиг dovecot:

nano /etc/dovecot/dovecot.conf

Найти в нём строчку, которая может выглядеть у вас например вот так:

ssl_protocols = !SSLv2 !SSLv3

Всё что нужно, это просто удалить SSLv2, либо заменить его на SSLv3. В любом случае, строчка должна выглядеть вот так:

ssl_protocols = !SSLv3

Собственно всё. Больше никаких ошибок мне не встретилось. Кстати, если кому интересно, то мой сервер хостится на IHC. Сервера шустрые, поддержка на уровне, цены приемлемые. Выбирал достаточно долго, прежде чем остановиться на нём.

Процесс обновления Debian 8 Jessie до Debian 9 Stretch

1 шаг. Делаем бэкапы. Обязательно делаем бэкапы.

2 шаг. Подключаемся через SSH к своему серверу (если обновление на технике к которой у вас есть физический доступ, то пропускаем этот шаг)

3 шаг. Нам нужно получить рут права. После ввода команды будет спрошен пароль от root.

$ su

4 шаг. Нужно обновить нынешнюю систему до актуального состояния.

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

5 шаг. Нужно отредактировать список репозиториев. Нужно заменить все встречающиеся jessie на stretch

# nano /etc/apt/sources.list

Желательно не путать всё в кучу и сделать сначала минимальное обновление, а потом уже оставшееся.

6 шаг. Делаем минимальное обновление

# apt-get update; apt-get upgrade;

В процессе этого или следующего шага возможно, что configuring libc6:amd64 спросит у вас, нужно ли перезапустить все службы безо всяких вопросов.

Предлагаю ответить на это предложение утвердительно.

7 шаг. Обновляем оставшееся

# apt-get dist-upgrade

8 шаг. Удаляем старые ненужные пакеты плюс чистим кэш утилиты apt, это всё больше нам ни к чему. Когда появится диалог очистки с вопросом да или нет, советую внимательно проверить список того, что удалит autoremove. Иногда туда могут попасть пакеты, которые на самом деле ещё нужны лично вам.

# apt-get autoremove; apt-get clean

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

reboot

На этом всё. Если у вас есть какие-то вопросы или возникли какие-то ошибки, пишите в комментарии, разберёмся вместе.

Источник: https://evilcoder.ru/obnovlenie-debian-8-jessie-do-debian-9-stretch-i-vozmojnye-oshibki/

Ссылка на основную публикацию