Tutorial

Обновление до версии Ubuntu 20.04 Focal Fossa

Published on June 11, 2020
Русский
Обновление до версии Ubuntu 20.04 Focal Fossa

Введение

23 апреля 2020 года была выпущена новейшая версия операционной системы Ubuntu с долгосрочной поддержкой (LTS) — Ubuntu 20.04 (Focal Fossa). В этом руководстве мы расскажем, как провести обновление системы Ubuntu версии 18.04 или выше до версии Ubuntu 20.04.

Предупреждение. При каждом значительном обновлении версии операционной системы существует опасность неисправности, потери данных или нарушения конфигурации программного обеспечения. Настоятельно рекомендуется сделать полную резервную копию системы и провести тестирование в существенном объеме.

Во избежание проблем мы рекомендуем перейти на новый сервер Ubuntu 20.04 вместо обновления существующей системы. При переходе могут потребоваться изменения конфигурации программного обеспечения, но основная операционная система будет более стабильной. Чтобы узнать больше о миграции серверов ознакомьтесь с нашей серией статей о переходе на новый сервер Linux.

Предварительные требования

Для целей этого руководства предполагается, что вы используете систему с операционной системой Ubuntu версии 18.04 или выше с пользователем sudo без привилегий root.

Потенциальные сложности

Хотя многие системы можно обновить без каких-либо проблем, для большей безопасности и предсказуемости часто бывает лучше установить дистрибутив с нуля, настроить службы с тщательным тестированием и выполить перенос приложений или пользовательских данных на отдельном шаге.

Рабочую систему не следует обновлять без предварительного тестирования установленного программного обеспечения и служб в тестовой среде. Необходимо помнить, что библиотеки, языки и системные службы могли существенно измениться. Перед обновлением стоит почитать примечания к выпуску Focal Fossa.

Шаг 1 – Резервное копирование системы

Прежде чем проводить масштабное обновление любой системы, необходимо убедиться, что неполадки не приведут к потере данных. Для этой цели лучше всего сделать полную резервную копию файловой системы. Если это нецелесообразно, необходимо сделать копии домашних каталогов пользователей, пользовательских файлов конфигурации и данных, сохраненных различными службами, например реляционными базами данных.

Если используется дроплет DigitalOcean, можно завершить работу системы и сделать моментальный снимок (при завершении работы файловая система становится более согласованной). Дополнительную информацию о процессе создания снимков можно найти в статье «Создание снимков дроплетов». Когда вы убедитесь, что обновление Ubuntu прошло успешно, вы можете удалить снимок, чтобы больше не платить за его хранение.

Чтобы узнать о методах резервного копирования, которые подойдут для большинства систем Ubuntu, ознакомьтесь со статьей «Как выбрать эффективную стратегию резервного копирования для вашего VPS».

Шаг 2 – Обновление установленных пакетов

Перед обновлением версии безопаснее будет провести обновление версий всех пакетов для текущей версии ОС. Для начала обновите список пакетов:

  1. sudo apt update

Затем обновите установленные пакеты до последних доступных версий:

  1. sudo apt upgrade

Вы увидите список обновлений, и вам будет предложено продолжить. Выберите y для подтверждения и нажмите Enter.

Этот процесс может занять некоторое время. Когда он завершится, используйте команду dist-upgrade с apt-get, которая выполнит дополнительные обновления, связанные с изменением зависимостей, и в процессе будет добавлять или удалять новые пакеты по мере необходимости. Эта команда проведет обновления, которые могли быть задержаны на предыдущем шаге выполнения apt upgrade:

  1. sudo apt dist-upgrade

Ответьте y, чтобы продолжить, и подождите, пока обновления не будут завершены.

Вы обновили текущую версию Ubuntu и теперь можете использовать do-release-upgrade для перехода на версию 20.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 без опций:

  1. sudo do-release-upgrade

Если новая версия Ubuntu еще не выпущена официально, вы можете увидеть следующий результат:

Output
Checking for a new Ubuntu release No new release found

Обратите внимание, что на сервере Ubuntu новый выпуск LTS остается недоступным для do-release-upgrade до выпуска первой версии с точкой, в данном случае 20.04.1. Обычно это происходит через несколько месяцев после первоначальной даты выпуска.

Если вы не видите доступного выпуска, используйте опцию -d для обновления до выпуска на этапе разработки:

  1. sudo do-release-upgrade -d

Если вы подключены к системе через SSH, вам нужно будет указать, хотите ли вы продолжить. При работе с виртуальными машинами и управляемыми серверами следует учитывать опасность разрыва соединения SSH, особенно если у вас нет другого способа подключения к системной консоли (например, через веб-консоль).

Для других ваших систем безопаснее выполнять существенные обновления операционной системы только при наличии непосредственного физического доступа к компьютеру.

Введите в диалоге y и нажмите Enter, чтобы продолжить:

Output
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:

Output
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. Теперь вы можете получить предупреждение об отсутствии зеркальной записи. На системах DigitalOcean вы можете игнорировать это предупреждение и продолжать процедуру обновления, поскольку на самом деле локальное зеркало 20.04 все-таки доступно. Введите y:

Output
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 'bionic' to 'focal' entries. If you select 'No' the upgrade will cancel. Continue [yN]

После загрузки новых списков пакетов и расчета изменений вам будет предложено запустить процедуру обновления. Введите y, чтобы продолжить:

Output
Do you want to start the upgrade? 18 installed packages are no longer supported by Canonical. You can still get support from the community. 3 packages are going to be removed. 142 new packages are going to be installed. 452 packages are going to be upgraded. You have to download a total of 338 M. This download will take about 42 minutes with a 1Mbit DSL connection and about 13 hours with a 56k modem. Fetching and installing the upgrade can take several hours. Once the download has finished, the process cannot be canceled. Continue [yN] Details [d]

После этого будут получены, распакованы и установлены новые пакеты. Даже если у вашей системы быстрое подключение, это займет некоторое время.

Во время установки могут выводиться интерактивные диалоги с различными вопросами. Например, вам будет предложено автоматически перезапускать службы, когда это потребуется:

Диалог перезапуска служб

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

После завершения установки новых пакетов вам будет предложено удалить старые пакеты. В стандартной системе без измененных конфигураций в этом диалоге можно безопасно ввести y. Если вы серьезно модифицировали систему, лучше будет ввести d и просмотреть список удаляемых пакетов на случай, если в нем есть что-то, что вам позднее потребуется переустанавливать.

Output
Remove obsolete packages? 53 packages are going to be removed. Continue [yN] Details [d]

Если предположить, что все прошло хорошо, вы получите сообщение о том, что обновление завершено и требуется перезагрузка системы. Введите y, чтобы продолжить:

Output
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 вы увидите примерно следующее:

Output
Connection to 203.0.113.241 closed by remote host. Connection to 203.0.113.241 closed.

Возможно вам нужно будет нажать клавишу для выхода в локальную командную строку в связи с прекращением сеанса SSH на стороне сервера.

Подождите, пока сервер не перезагрузится, а затем подключитесь к нему снова. При входе вы должны увидеть сообщение, подтверждающее, что вы теперь используете Focal Fossa:

Output
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-29-generic x86_64)

Заключение

Вы установили рабочую систему Ubuntu 20.04. Теперь вы можете изучить необходимые изменения конфигурации служб и развернутых приложений.

Дополнительные обучающие модули и ответы на вопросы по версии 20.04 можно найти на страницах с тегом «Обучающие модули по Ubuntu 20.04».

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel