Сначала очень боялся это делать на живом, рабочем сервере именно потому что с более старыми версиями у меня был печальный опыт, где было проще переустановить систему, чем исправлять имеющиеся ошибки. Поэтому изначально сделал все нужные бэкапы. А именно:
Папка /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
На этом всё. Если у вас есть какие-то вопросы или возникли какие-то ошибки, пишите в комментарии, разберёмся вместе.