17 июня 2017 года вышло очередное обновление популярного linux дистрибутива Debian. Это уже 9-й выпуск Debian под кодовым названием Stretch. Я подробно расскажу, как выполнить обновление с предыдущего выпуска Debian 8 Jessie до Debian 9 Stretch. Процесс обновления не сложный, выполняется штатными средствами с помощью apt.
Chapter 1. Введение
Подробную информацию о новой версии Debian можно узнать из официальной новости. Из наиболее значимых изменений можно отметить:
- Замена пакета mysql на mariadb. Ранее этот шаг был сделан на centos. Теперь и debian решили использовать по-умолчанию mariadb.
- Инсталлятор теперь по-умолчанию использует графический режим.
- В состав системы включены инструменты по управлению nftables — новый firewall, который нацелен на замену iptables.
- Появился новый репозиторий dbg-sym с пакетами для отладки.
- В новый дистрибутив внедрена система предсказуемого именования сетевых интерфейсов. Вместо eth0, eth1 и т.д. будет использована информация в зависимости от возможностей биоса — enoN, ensN, enpNsM. Если параметры новой разметки интерфейсов будут недоступны, будут использоваться старые. В общем и целом это должно предотвратить ситуацию, когда после добавления нового сетевого интерфейса, изменяются имена в системе уже существующих адаптеров.
Обновление системы выполнить не сложно, справится практически любой пользователь, используя данное руководство. Проблемы могут возникнуть в отдельных пакетах и зависимостях. Но тут уже готовых советов не дать, нужно разбираться по месту. По моему опыту, чаще всего все проходит нормально, можно обновляться, выполнив соответствующую подготовку.
Chapter 2. Подготовка сервера к обновлению
Будем обновлять следующую систему:
# 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 Stretc