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

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

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Если вам нужна чистая установка новой версии, можете воспользоваться подробным руководством на эту тему - скачать и установить Debian 9 Stretch

Введение

Подробную информацию о новой версии 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

Обновление 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.

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

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

Рекомендую полезные материалы по Debian:
Настройки системы
  • Установка
  • Базовая настройка
  • Настройка сети
  • Обновление 8 до 9
  • Обновление 7 до 8
  • Включение логов cron
Подробная установка Debian 9 Stratch с помощью графического инсталлятора со скриншотами и пояснениями к каждому пункту установщика.
Базовая настройка сервера Debian. Приведены практические советы по улучшению безопасности и удобства администрирования.
Подробное описание настройки сети в Debian - задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др.
Обновление предыдущей версии Debian 8 Jessie до последней Debian 9 Stratch. Подробная инструкция с описанием по каждому этапу обновления.
Обновление версии Debian 7 wheezy до Debian 8 Jessie. Подробная инструкция с описанием по каждому этапу обновления.
Включение записи логов cron в Debian в отдельный файл и настройка ротации этого файла. Отключение логов в syslog.
Настройка программных комплексов
 
  • Proxmox
  • Шлюз в интернет
  • Установка Asterisk
  • Asterisk+Freepbx
  • PostgreSQL для 1С
  • Настройка pptp
Подробное описание установки гипервизора proxmox на raid1 mdadm на базе операционной системы Debian 8. Приведены практические советы по настройке.
Настройка интернет шлюза на Debian. Включает в себя настройку iptables, nat, dhcp, dns, iftop.
Чистая установка Asterisk 13 на сервер под управлением Debian 8. Никаких дополнений и GUI, только vanilla asterisk.
Установка Freepbx 12 и Asterisk 13 на сервер под управлением Debian/Ubuntu. Подробное описание и разбор ошибок установки.
Рассказ об установке и небольшой настройке сервера бд postgresql для работы с базами 1С. Задача не сложная, но есть небольшие нюансы как по настройке, так и по выбору дистрибутива.
Описание установки и настройки pptp сервера в Debian с передачей статических маршрутов клиенту для организации доступа к ресурсам сети.
Разное
  • Бэкап с помощью rsync
  • Тюнинг postgresl для 1C
Подробное описание настройки бэкапа с помощью rsync на примере скрипта инкрементного архива на системе Centos, Debian, Ubuntu, Windows.
Ускорение работы 1С с postgresql и диагностика проблем производительности

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

28 комментариев

  1. Обновил с версии 8.11 на 9.13. После этого в локальной консоли слетели кириллические шрифты - одни квадратики.
    Подскажите, пожалуйста, как это вылечить?

    • Нужно посмотреть, какая локаль в системе установлена по умолчанию. Возможно русская слетела после обновления, надо заново добавить с помощью команды:
      dpkg-reconfigure locales

  2. Не все так просто. В debian 9 версии некоторых пакетов выше, чем в debian 8. И не у всех пакетов конфигурационные файлы совместимы. Опишу с чем я столкнулся на практике: opendkim перестал работать, fail2ban выдавал предупреждения, но запускался (возможно фильтры при этом не работали), sshd работал, но в логах появились предупреждения, postfixadmin работал, но при этом dpkg выдавал ошибку dpkg: ошибка при обработке пакета postfixadmin (--configure):.....
    Возможно кто-нибудь столкнется и с другими проблемами. Так что обновиться без танцев с бубном не всегда получится, особенно если установлено много пакетов.

    • Все верно, чаще всего так и бывает. Лично я никогда не обновляю рабочие сервера с версии на версию. Только перенос на новый сервер и тестирование, потом вывод из работы старого. Именно поэтому я предпочитаю систему centos. У нее период поддержки 10 лет, против 5 лет у debian и ubuntu.

  3. После обновления получается mysql не будет. А что будет с базой данных? Она останется и будет работать в mariadb?

    • Да, с базой все должно быть в порядке. Но на всякий случай лучше сделать бэкап баз.

  4. После обновления неработает systemd сервер запускается раз через раз, повсюду ошибки

    в общем не советую....

    • В статье описано штатное обновление, другого способа обновиться в любом случае нет.

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

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

  5. deb http://security.debian.org/ stretch/updates main
    deb-src http://security.debian.org/ stretch/updates main

    Пока не отключил эти строки, которые давали ошибки на всех серверах репозитариев, апдейт не проходил.
    Отключил их - и Дебиан обновился до 9.1.
    Может, в этих строках содержится ошибка?

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

  6. Отправил письмо

  7. Хорошо, спасибо за идею, попробую.

    И еще. Если вы разбираетесь в OpenVPN, хотелось бы обсудить с вами небольшой коммерческий вопрос по email или другим способом.

  8. > Тут налицо проблемы с доступностью репозиториев, поэтому ничего и не обновилось. > Надо решать сначала эту проблему, потом обновляться.
    > Причин недоступности репозиториев может быть много.
    > Возможно банально сетевые проблемы.

    Спасибо за быстрый ответ!
    Сетевые проблемы - на чьей стороне имеются в виду?
    Если моя последняя миля - так с этим полнейший порядок.
    Если со строны репозитриев Debian, так я выбрал самые главные - debian.org, куда уж надежнее.
    Потом даже закомментировал deb-src, но и это не помогло.
    Уж не знаю, что еще можно сделать....

    deb http://debian.org/debian/ stretch main
    # deb-src http://debian.org/debian/ stretch main

    deb http://debian.org/debian/ stretch updates-main
    # deb-src http://debian.org/debian/ stretch updates-main

    deb http://security.debian.org/ stretch/updates main
    # deb-src http://security.debian.org/ stretch/updates main

    • Вообще, я сталкивался и не так уж редко с ситуацией, когда главные репозитории недоступны. Причем проблема может быть где-то посередине, а не конкретно на месте установки сервера. Можно попробовать другие репозитории, например от яндекса - mirror.yandex.ru.

  9. Аааааа, вот оно что - коментарии появляются с большим запозданием....
    Прошу меня извинить за дубликаты.

    • В первом сообщении были много внешних ссылок, поэтому система защиты от спама не пропустила сразу сообщение. Я его вручную одобрил. Сообщения появляются моментально после публикации.

  10. Извините за возможный дубликат, но я ни разу не увидел никакого информационного сообщения, что мой комментарий замечен, принят или что-то в этом роде.
    Поэтому складывается впечатление, что он проигнорирован.

  11. Очень обрадовался этой статье, которая призвана упростить адейт нормально работающего Debian 8.
    Выполнил все по пунктам.
    Хотя в целом обновление прошло успешно, тем не менее, возникали ошибки недоступности некоторых разделов репозитариев, в частности, не проходили deb-src.
    Да и после обновления теперь то тоже возникают ошибки, например:

    apt update

    Игн https://pkg.tox.chat nightly/release Translation-ru
    Получено:31 https://pkg.tox.chat nightly/release Translation-en [162 B]
    Игн https://pkg.tox.chat nightly/release Translation-en
    Ош http://debian.org stretch/main amd64 Packages
    404 Not Found [IP: 5.153.231.4 80]
    Ош http://debian.org stretch/updates-main amd64 Packages
    404 Not Found [IP: 5.153.231.4 80]
    Ош http://debian.org stretch/main i386 Packages
    404 Not Found [IP: 5.153.231.4 80]
    Ош http://debian.org stretch/updates-main i386 Packages
    404 Not Found [IP: 5.153.231.4 80]
    Игн http://debian.org stretch/main Translation-ru_RU
    Игн http://debian.org stretch/main Translation-ru
    Игн http://debian.org stretch/main Translation-en
    Игн http://debian.org stretch/updates-main Translation-ru_RU
    Игн http://debian.org stretch/updates-main Translation-ru
    Игн http://debian.org stretch/updates-main Translation-en
    W: Не удалось получить http://debian.org/debian/dists/stretch/main/binary-amd64/Packages 404 Not Found [IP: 5.153.231.4 80]

    W: Не удалось получить http://debian.org/debian/dists/stretch/updates-main/binary-amd64/Packages 404 Not Found [IP: 5.153.231.4 80]

    W: Не удалось получить http://debian.org/debian/dists/stretch/main/binary-i386/Packages 404 Not Found [IP: 5.153.231.4 80]

    W: Не удалось получить http://debian.org/debian/dists/stretch/updates-main/binary-i386/Packages 404 Not Found [IP: 5.153.231.4 80]

    E: Некоторые индексные файлы не скачались. Они были проигнорированы или вместо них были использованы старые версии.

    В итоге после ребута версия Debian осталась прежней. Почему?

    lsb_release -a
    LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch:core-4.1-amd64:core-4.1-noarch:security-4.0-amd64:security-4.0-noarch:security-4.1-amd64:security-4.1-noarch
    Distributor ID: Debian
    Description: Debian GNU/Linux 8.9 (jessie)
    Release: 8.9
    Codename: jessie

    • Тут налицо проблемы с доступностью репозиториев, поэтому ничего и не обновилось. Надо решать сначала эту проблему, потом обновляться. Причин недоступности репозиториев может быть много. Возможно банально сетевые проблемы.

  12. Николай

    Обновил Debian 8 до debian 9. Хорошо, что перед обновлением сохранил образ системы. Во-первых, обновление продолжалось более двух часов, за это время запросто установил Debian 9.1 на USB_HDD. Во-вторых, слетела половина дополнительных программ и настроек, например пропал Grub Customizer, испортились настройки WPS Writer, пропали дополнительные шрифты, пропал аплет "Диспетчер настроек" в сессии Xfce, и соответственный, в сессии Gnome, пропали обои рабочего стола и восстановить их не удалось. В-третьих, при переходе из сессии Gnome в сессию Xfce бесконечное требование пароля, наоборот нормально Уже этого достаточно, чтобы впредь отказаться от обновления. Гораздо более эффективно и меньше глюков, просто снести систему и установить новую

  13. уже прошло боле 2х часов ничего не идет. что делать не знаю ... подскажете ?

    • Разбираться надо. Я раз 10 по этой схеме обновлял сервера, все нормально было. Не знаю, что посоветовать.

  14. У меня завис
    /etc/kernel/postinst.d/zz-update-grub:
    Generating grub configuration file ...
    Найден образ linux: /boot/vmlinuz-3.16.0-4-amd64
    Найден образ initrd: /boot/initrd.img-3.16.0-4-amd64

  15. Хорошая статья.
    Прошу так же сделать статью по поводу апдейта с Centos 6 на Centos 7

    • Я был бы рад сделать такую статью и обновить сервера, но это невозможно. CentOS не поддерживает обновление с разных версий.

      • кстати нашел статейку по поводу обновлений. Вот только нету кролика под него
        https://news36.org/threads/obnovlenie-centos-s-6-6-do-centos-7.196/

        • Спасибо за наводку, надо потестировать. Я не рассматривал вариант с 6 на 7, мне важнее с 5 на 6, а вот тут проблема. Нет никаких штатных возможностей. Только костыльный вариант с переходом сервера на федору, обновлением, а потом возврат на centos. Но такой вариант для продакшена неприемлем, слишком рискованно.

          • Да, с 5 до 6 для меня тоже очень критичен. Так как 3 очень важных серверов на 5 крутится.

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

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

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar