Свежий релиз операционной системы Ubuntu с долгосрочной поддержкой (LTS), Ubuntu 22.04 (Jammy Jellyfish), был выпущен 21 апреля 2022 года. В этом руководстве мы расскажем, как обновить более старые версии системы до Ubuntu 22.04.
Важно! Процесс обновления операционной системы – это практически всегда риск столкнуться со сбоями, потерять данные или неправильно сконфигурировать программное обеспечение. Настоятельно рекомендуем заранее выполнить комплексное резервное копирование и все протестировать.
Чтобы избежать перечисленных выше проблем, мы рекомендуем создать новый сервер Ubuntu 22.04, а не обновлять старый. Вероятно, при этом вам по-прежнему придется проверять различия в конфигурации программного обеспечения, но базовая система получится более стабильной.
Читайте также: Миграция виртуального сервера Linux: подготовка системы
Требования
Для выполнения руководства нужна система Ubuntu 20.04 (более поздние версии тоже подойдут) и пользователь с поддержкой sudo.
Потенциальные ошибки
Многие системы можно легко обновить без чрезвычайных происшествий, однако зачастую безопаснее (и более предсказуемо) перейти на новую версию, установив дистрибутив с нуля, настроив сервисы, тщательно все протестировать, а только потом перенести приложения или пользовательские данные.
Никогда не обновляйте производственную систему без предварительной проверки всего развернутого программного обеспечения и всех сервисов на соответствие обновлению в промежуточной среде. Имейте в виду, что библиотеки, языки и системные сервисы могут существенно измениться в новой версии ОС. Перед обновлением прочтите примечания к релизу Jammy Jellyfish.
1: Резервное копирование системы
Прежде чем вносить серьезные обновления в любую систему, вы должны убедиться, что не потеряете данные, если что-то пойдет не так. Лучший способ добиться этого — сделать резервную копию всей текущей файловой системы. Если вы не хотите копировать всю файловую систему, создайте копии хотя бы домашних каталогов пользователей, а также любых пользовательских файлов конфигурации и данных из БД.
Читайте также: Как выбрать стратегию резервного копирования для VPS
2: Обновление текущих пакетов
Прежде чем приступить к полному обновлению, лучше в целях безопасности обновить все пакеты до последних версий. Начните с обновления списка пакетов:
sudo apt update
Затем обновите установленные пакеты до последних доступных версий:
sudo apt upgrade
Система покажет список обновлений и запросит подтверждение. Нажмите y и Enter, чтобы продолжить.
Этот процесс может занять некоторое время. После его завершения используйте команду dist-upgrade, которая выполнит любые дополнительные обновления, связанные с изменением зависимостей, а также с добавлением или удалением пакетов по мере необходимости. Эта команда обработает набор обновлений, которые могли быть отложены во время предыдущих операций:
sudo apt dist-upgrade
Снова нажмите y, когда будет предложено продолжить, и дождитесь завершения процесса.
Теперь у вас установлены последние пакеты Ubuntu и вы можете использовать команду do-release-upgrade для обновления системы до версии 22.04.
3: Обновление Ubuntu с помощью инструмента do-release-upgrade
Традиционно выпуски Ubuntu обновлялись через файл apt, /etc/apt/sources.list, в котором указаны репозитории пакетов, после чего нужно было запустить команду apt-get dist-upgrade для выполнения самого обновления. Хотя этот процесс все еще, вероятно, работает, теперь Ubuntu предоставляет инструмент под названием do-release-upgrade – он делает обновление более безопасным и простым.
do-release-upgrade проверяет наличие новой версии, обновляет sources.list и выполняет ряд других задач. Данный инструмент официально рекомендуется использовать для обновления сервера через удаленное соединение.
Для начала запустим do-release-upgrade без параметров:
sudo do-release-upgrade
Если новая версия Ubuntu еще официально не выпущена, вы, скорее всего, получите следующий вывод:
Checking for a new Ubuntu release
No new release found
Обратите внимание, что на сервере Ubuntu новый релиз LTS недоступен для команды do-release-upgrade до его первой доработанной версии, в данном случае 22.04.1. Обычно это занимает несколько месяцев после первоначальной даты выпуска.
Если вы не видите доступный релиз, добавьте параметр -d, чтобы обновиться до разрабатываемого (development) выпуска:
sudo do-release-upgrade -d
Если вы подключены к своей системе через SSH, система спросит, хотите ли вы продолжить. При работе с виртуальными машинами или управляемыми серверами следует помнить, что потеря подключения по SSH представляет собой риск, особенно если у вас нет другого средства удаленного подключения к системной консоли (например, веб-консоли).
Помните, что безопаснее всего вносить важные обновления в системы, работающие на машинах, к которым у вас есть физический доступ.
Введите y и нажмите Enter, чтобы продолжить:
Reading cache
Checking package manager
Continue running under SSH?
This session appears to be running under ssh. It is not recommended
to perform a upgrade over ssh currently because in case of failure it
is harder to recover.
If you continue, an additional ssh daemon will be started at port
'1022'.
Do you want to continue?
Continue [yN]
После этого команда do-release-upgrade сообщит вам о начале работы sshd по порту 1022.
Starting additional sshd
To make recovery in case of failure easier, an additional sshd will
be started on port '1022'. If anything goes wrong with the running
ssh you can still connect to the additional one.
If you run a firewall, you may need to temporarily open this port. As
this is potentially dangerous it's not done automatically. You can
open the port with e.g.:
'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT'
To continue please press [ENTER]
Нажмите Enter. Далее вас могут предупредить, что зеркальная запись не найдена. Чаще всего можно просто проигнорировать это предупреждение и продолжить обновление (скорее всего, локальное зеркало для 22.04 на самом деле доступно). Введите y:
Updating repository information
No valid mirror found
While scanning your repository information no mirror entry for the
upgrade was found. This can happen if you run an internal mirror or
if the mirror information is out of date.
Do you want to rewrite your 'sources.list' file anyway? If you choose
'Yes' here it will update all 'focal' to 'jammy' entries.
If you select 'No' the upgrade will cancel.
Continue [yN]
После загрузки новых списков пакетов и расчета изменений система спросит, хотите ли вы начать обновление. Снова введите y, чтобы продолжить:
Do you want to start the upgrade?
4 packages are going to be removed. 107 new packages are going to be
installed. 554 packages are going to be upgraded.
You have to download a total of 547 M. This download will take about
1 minute with a 40Mbit connection and about 14 minutes with a 5Mbit
connection.
Fetching and installing the upgrade can take several hours. Once the
download has finished, the process cannot be canceled.
Continue [yN] Details [d]
Вы можете получить предупреждение о невозможности отключить экран блокировки:
Unable to disable lock screen
It is highly recommended that the lock screen be disabled during the
upgrade to prevent later issues. Please ensure your screen lock is
disabled before continuing.
Если вы подключаетесь к серверу Ubuntu, вы можете проигнорировать это предупреждение, нажав Enter.
После этого система будет извлекать, распаковывать и устанавливать новые пакеты. Даже если ваша система использует быстрое соединение, это займет некоторое время.
Во время установки на экране могут появляться интерактивные окна с различными вопросами. Например, вас могут спросить, хотите ли вы автоматически перезапускать сервисы при необходимости. В этом случае можно с уверенностью ответить Yes. Система также может спросить, хотите ли вы заменить отредактированный файл конфигурации. Это всегда индивидуальный момент, который требует знаний о конкретном программном обеспечении, а это выходит за рамки данного руководства.
После завершения установки новых пакетов вас спросят, готовы ли вы удалить устаревшие пакеты. В стандартной системе без пользовательской конфигурации можно просто ответить y. Если же в вашей системе много пользовательских настроек, вы можете ввести d и проверить список пакетов, которые нужно удалить (на тот случай, если он содержит что-то, что вам нужно будет переустановить позже).
Remove obsolete packages?
53 packages are going to be removed.
Continue [yN] Details [d]
Наконец, если все прошло хорошо, система сообщит вам, что обновление завершено и требуется перезагрузка. Введите Y, чтобы продолжить:
System upgrade is complete.
Restart required
To finish the upgrade, a restart is required.
If you select 'y' the system will be restarted.
Continue [yN]
В сеансе SSH вы, вероятно, увидите что-то вроде:
Connection to 203.0.113.241 closed by remote host.
Connection to 203.0.113.241 closed.
Возможно, здесь вам нужно будет нажать какую-нибудь клавишу, чтобы выйти из локальной командной строки, поскольку ваш сеанс SSH будет завершен на стороне сервера.
Подождите, пока ваш сервер перезагрузится, затем снова подключитесь. При входе в систему вы должны увидеть приветственное сообщение, подтверждающее, что вы находитесь в новой версии Ubuntu:
Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-25-generic x86_64)
Заключение
Теперь у вас есть рабочая установка Ubuntu 22.04. После обновления вам, вероятно, нужно будет изучить конфигурации сервисов и развернутых приложений и внести необходимые изменения.
Читайте также: Начальная настройка сервера Ubuntu 22.04