Как обновить Debian 8 до Debian 9
Раздел(ы): GNU Linux - CentOS / Debian
Просмотры: 3086
Комментарии: 5
Кодовое имя Debian 9 — Stretch, он пришел на смену Debian 8 Jessie летом 2017 года и будет иметь долгосрочную поддержку в течение 5 лет.
В этой статье я расскажу как в течении нескольких минут штатными средствами с помощью менеджера пакетов APT обновиться с Debian 8 Jessie на Debian 9 Stretch.
Перед тем как начать
Все действия будем выполнять с правами суперпользователя, поэтому залогиньтесь под ROOT:
$ su -
Перед началом обновления хорошая практика подразумевает создание резервных копий всех данных. Так что не забудьте про бэкапы и пусть они вам никогда не пригодятся!
Текущая версия Debian
Обновлять Debian я буду на виртуальном сервере. Посмотрим какая сейчас установлена версия операционной системы:
# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.7 (jessie) Release: 8.7 Codename: jessie
Обновление списка репозиториев до Debian 9
В файле исходного списка репозиториев /etc/apt/sources.list нужно заменить все экземпляры «jessie» на «stretch». Например так:
# sed -i 's/jessie/stretch/g' /etc/apt/sources.list
Но я предпочитаю использовать зеркало репозиториев на Яндекс https://mirror.yandex.ru, так как обновляемый сервер у меня расположен в России и скорость скачивания пакетов с Яндекса банально быстрее. Поэтому делаю так,
сначала сохраняю старый список:
# mv /etc/apt/sources.list /etc/apt/sources.list.old
а затем делаю новый, но уже с серверами от Яндекс:
# cat > /etc/apt/sources.list << "EOF" 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 EOF
Оригинальный sources.list для Debian 9
Возможно вам пригодится. По-умолчанию sources.list для Debian 9/Stretch выглядит следующим образом:
deb http://deb.debian.org/debian stretch main deb-src http://deb.debian.org/debian stretch main deb http://deb.debian.org/debian stretch-updates main deb-src http://deb.debian.org/debian stretch-updates main deb http://security.debian.org/ stretch/updates main deb-src http://security.debian.org/ stretch/updates main
Обновление до Debian 9
После изменения списка репозиториев последовательно выполните следующие команды:
# apt update
В процессе ee выполнения на экран может быть выведен список изменений нового выпуска, тут либо пролистайте и досмотрите файл до конца, либо сразу жмите [q].
# apt upgrade
Во время этого шага вас спросят, хотите ли вы перезапустить службы во время обновления пакетов без запроса.
Я выбрал «Yes».
Для завершения перехода на Debian 9 введите следующее:
# apt dist-upgrade
Очистка системы от ненужных пакетов:
# apt autoremove
# apt clean
После этого можно перегрузить сервер:
# reboot
После загрузки проверьте версию Debian:
$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 9.3 (stretch) Release: 9.3 Codename: stretch
Как видите обновление с Debian 8 Jessie на Debian 9 Stretch прошло успешно.
Не все так просто. В debian 9 версии некоторых пакетов выше, чем в debian 8. И не у всех пакетов конфигурационные файлы совместимы. Опишу с чем я столкнулся на практике: opendkim перестал работать, fail2ban выдавал предупреждения, но запускался (возможно фильтры при этом не работали), sshd работал, но в логах появились предупреждения, postfixadmin работал, но при этом dpkg выдавал ошибку dpkg: ошибка при обработке пакета postfixadmin (—configure):…..
Возможно кто-нибудь столкнется и с другими проблемами. Так что обновиться без танцев с бубном не всегда получится, особенно если установлено много пакетов.
Я делал обновление практически на «чистом» сервере. И видимо поэтому у меня все прошло гладко.
Проверьте логи sshd, у меня никаких ошибок и предупреждений не было, ssh работает нормально, вот только в логах /var/log/syslog появились такие записи:
/etc/ssh/sshd_config line 19: Deprecated option KeyRegenerationInterval
/etc/ssh/sshd_config line 20: Deprecated option ServerKeyBits
/etc/ssh/sshd_config line 31: Deprecated option RSAAuthentication
/etc/ssh/sshd_config line 38: Deprecated option RhostsRSAAuthentication
только что посмотрел, у меня в логах ничего подобного нет
Значит у Вас в /etc/ssh/sshd_config нет параметров
KeyRegenerationInterval
ServerKeyBits
RSAAuthentication
RhostsRSAAuthentication
Видимо у меня они тянутся из очень старых версий.