База знаний: Linux Server
Как обновить Debian со старой версии до более новой?
Автор Алексей | HiTex.BY, Последнее изменение: Алексей | HiTex.BY на 25 июля 2023 8:57

На примере Обновим Debian 9 (Stretch) до Debian 11 (Bullseye) с пошаговым руководством.

Как узнать версию Debian

Чтобы узнать текущую версию Debian, введем команду:

cat /etc/debian_version
Как узнать версию Debian

Создание Backup системы

Создать Backup системы перед обновлением нужно. Какими средствами и в каком объеме — тема достойная отдельной статьи. Здесь на этом не будем останавливаться. Напишу только про себя.

Поскольку у меня на обновляемой системе стоит сервер 1С, то я сделаю выгрузку Информационной базы 1С (файл с расширением .dt, содержащий базы данных, конфигурацию и список пользователей — все необходимое для восстановления 1С).

А с помощью утилиты rsync сделаю удаленную копию всей обновляемой системы. И это не займет много времени, поскольку копия обновляемой системы делалась ранее, а утилита rsync позволяет передавать только изменения в файлах.

Как обновить Debian по SSH

Если подключиться к обновляемой системе по SSH, запустить обновление Debian и во время обновления произойдет разрыв SSH соединения, то процесс обновления Debian будет прерван. А это может вызвать неработоспособность обновляемой системы.

Программа Screen для безопасного обновления

Чтобы безопасно обновить Debian по SSH, необходимо запускать процесс обновления в программе screen. Программа screen гарантирует, что процесс обновления не будет прерван, даже если разорвется SSH соединение. Программа screen обеспечит безопасное повторное подключение по SSH для продолжения наблюдения за обновлением Debian.

Устанавливаем программу screen:

apt install screen

Запускаем программу screen:

screen

Видим окно приветствия программы screen:

Окно приветствия программы screen

Нажимаем клавишу Enter на клавиатуре, окно приветствия программы screen пропадает, и видим обычное приглашение командной строки. И вот теперь мы готовы безопасно запускать обновление Debian. Все команды обновления будут запущены внутри программы screen со всеми преимуществами, описанными чуть выше.

Чтобы завершить работу программы screen, нужно набрать:

exit

Появится надпись [screen is terminating]:

Завершение работы программы screen

Чтобы отключиться от screen, не завершая работу программы screen, нужно нажать комбинацию трех клавиш Ctrl + A + D. Появится надпись [detached from XXXX.pts-0…..]:

Отключение от screen без завершения работа программы screen

Цифры XXXX — это ID (идентификатор) screen, который понадобится для повторного подключения к screen.

Для повторного соединения со screen нужно набрать:

screen -r

Если screen запущено несколько, то для повторного соединения со screen c идентификатором YYYY нужно набрать:

screen -r YYYY

Как обновить Debian 9 до Debian 10 (Buster)

Не рекомендуется обновлять Debian с пропуском версии, т.е. с Debian 9 сразу до Debian 11. Поэтому сначала обновимся до Debian 10.

Обновляем Debian 9 до последней подверсии

Обновим текущую систему Debian 9 до последней подверсии. Первым делом обновляем списки пакетов из репозиториев (хранилищ пакетов Debian):

apt update

Обновляем пакеты, установленные в системе (никакие ранее установленные пакеты не удаляются):

apt upgrade

Обновляем пакеты, которые имеют сложные зависимости (могут удаляться устаревшие пакеты):

apt dist-upgrade

Удаляем пакеты, которые были ранее установлены автоматически, но больше не требуются:

apt --purge autoremove

Перезагружаемся и проверяем, какая подверсия Debian 9 стала:

reboot
cat /etc/debian_version

Обновляем файлы репозиториев

Репозитории — это хранилища. В нашем случае, репозитории — это сетевые хранилища дистрибутивов Debian и программ для Debian. В файлах репозиториев указываются пути к репозиториям и версия Debian, которая нужна.

Нам нужен Debian 10 (Buster), поэтому правим файл /etc/apt/sources.list, заменяя stretch на buster. Должно получиться так:

Как обновить файл репозиториев Debian

У меня еще есть файл репозиториев СУБД Postgresql для 1С /etc/apt/sources.list.d/pg1c-14.list. Я правлю его, а вы проверяйте директорию /etc/apt/sources.list.d/ на предмет своих файлов репозиториев.

Файл репозиториев СУБД Postgresql для 1С

Запускаем обновление до Debian 10

Последовательно запускаем уже знакомые команды:

apt update
Команда apt update
apt upgrade
Команда apt upgrade
apt dist-upgrade
apt --purge autoremove
reboot
cat /etc/debian_version
Как обновить Debian 9 до Debian 10

Ура! Версия Debian 10.13. Обновить систему до Debian 10 оказалось несложно.

Как обновить Debian 10 до Debian 11 (Bullseye)

Правим файлы репозиториев, заменяя buster на bullseye. В файле /etc/apt/sources.list изменился формат записи для security репозитория. Был формат buster/updates, а стал bullseye-security:

Файл sources.list

Чтобы обновить систему до Debian 11 запускаем последовательность команд, как описано в разделе «Запускаем обновление до Debian 10», перезагружаемся и проверяем версию Debian.

Debian 11 Bullseye

Готово!

Неожиданности после обновления

Переменная PATH, команда su, Debian 10 Buster

После обновления системы до Debian 10 (Buster) или до более новой версии Debian может стать неожиданностью появление ошибки «команда не найдена» . И это после ввода какой-нибудь банальной команды, типа reboot:

Команда не найдена

В случае ошибок подобного рода (команда не найдена) нужно смотреть в сторону переменной окружения PATH, в которой как раз и хранятся пути поиска исполняемых файлов.

Переменная окружения PATH

Оказывается, что в Debian 9 (Stretch) и в более ранних версиях команда su меняет значение переменной окружения PATH на значение одной из переменных (ENV_PATH или ENV_SUPATH), определенных в файле /etc/login.defs. В Debian 10 (Buster) и в более новых версиях команда su не меняет переменную окружения PATH.

Используем вместо команды su команду:

sudo su

или команду:

su -

Ошибки «команда не найдена» больше нет, команда reboot пошла выполняться.

Выводы

В этой статье разобрались, как безопасно обновить Debian по SSH. Разобрались, что обновлять Debian 9 до Debian 11 лучше в два этапа: сначала до Debian 10, а потом уже до Debian 11.

Само обновление системы проходит в штатном режиме. После обновления рекомендуется проверить работоспособность всех сервисов, которые «крутились» в системе, как они себя чувствуют в новой среде?

(4 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)