Перейти к основному содержанию

Ubuntu Server 20.04 — апгрейд до версии 22.04

Ubuntu

Пришла ночь, пора обновлять ОС. Системные администраторы чаще всего занимаются апгрейдом операционный систем по ночам.

Сегодня апгрейдим Ubuntu Server 20.04 до версии 22.04. Апгрейд версии Ubuntu обычно не представляет сложности. Проблем может доставить несовместимость вашего софта с новой ОС. Поэтому, перед апгрейдом нужно подготовиться.

  • Если у вас есть возможность сделать бэкап сервера — сделайте бэкап. Проверьте что бэкап восстанавливается.
  • Если у вас виртуальная среда — сделайте снапшот сервера, чтобы откатиться обратно в случае сбоя.
  • Проведите тестирования вашего ПО на той версии ОС, на которую собираетесь обновляться.
  • Убедитесь что на сервере есть доступ в Интернет для загрузки новых пакетов. Или работает прокси.
  • Рассчитывайте время, апгрейд может занять несколько часов. Я обновлял 2.5 часа, ещё больше часа потратил на то, чтобы мой софт нормально заработал.
  • Ну чего я вас учу, соломки надо подстелить, пивас взять.

У меня всё не так страшно, я буду обновлять домашний сервер, так что обойдусь снапшотом.

Проверим текущую версию ОС:

cat /etc/*release*

У нас Ubunto Server 20.04.6 LTS.

linux

Подготовка к апгрейду

Работаем далее под root.

Если сразу выполнить попытку апгрейда, то ничего может не получиться.

do-release-upgrade

linux

Please install all available updates for your release before upgrading.

Команда проверяет наличие необновлённых пакетов и отказывается запускаться. Сначала нужно всё обновить.

apt update
apt upgrade
linux

Обновляем всё. Перезагружаем сервер.

reboot
linux

При логине по SSH видим:

New release '22.04.3 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

После перезагрузки всё ПО работает нормально, но команда do-release-upgrade завершается тем же сообщением: "Please install all available updates for your release before upgrading."

linux

Будем обновлять дальше.

apt dist-upgrade

Из мануала apt-get:

       upgrade
           upgrade is used to install the newest versions of all packages currently installed on the system from the sources enumerated in /etc/apt/sources.list. Packages currently
           installed with new versions available are retrieved and upgraded; under no circumstances are currently installed packages removed, or packages not already installed
           retrieved and installed. New versions of currently installed packages that cannot be upgraded without changing the install status of another package will be left at their
           current version. An update must be performed first so that apt-get knows that new versions of packages are available.

       dist-upgrade
           dist-upgrade in addition to performing the function of upgrade, also intelligently handles changing dependencies with new versions of packages; apt-get has a "smart"
           conflict resolution system, and it will attempt to upgrade the most important packages at the expense of less important ones if necessary. The dist-upgrade command may
           therefore remove some packages. The /etc/apt/sources.list file contains a list of locations from which to retrieve desired package files. See also apt_preferences(5) for a
           mechanism for overriding the general settings for individual packages.

Из мануала apt:

       upgrade (apt-get(8))
           upgrade is used to install available upgrades of all packages currently installed on the system from the sources configured via sources.list(5). New packages will be
           installed if required to satisfy dependencies, but existing packages will never be removed. If an upgrade for a package requires the removal of an installed package the
           upgrade for this package isn't performed.

       full-upgrade (apt-get(8))
           full-upgrade performs the function of upgrade but will remove currently installed packages if this is needed to upgrade the system as a whole.

Вкратце:

  • apt update (apt-get update) — обновление списка доступных пакетов.
  • apt upgrade (apt-get upgrade) — обновление установленных пакетов до последней доступной версии, не удаляет пакеты.
  • apt dist-upgrade (apt-get dist-upgrade) — обновление установленных пакетов до последней доступной версии со всеми зависимостями, удаляет при необходимости мешающие старые пакеты.
  • apt full-upgrade (apt-get full-upgrade) — то же самое что и apt dist-upgrade.
  • apt do-release-upgrade (apt-get do-release-upgrade, do-release-upgrade) — обновление релиза.

Команды из разных пакетов, но там везде алиасы прописаны, так что вызов работает.

linux

Обращаем внимание на строку:

Следующие пакеты будут оставлены в неизменном виде:
jellyfin

Это означает, что имеется пакет, который надо бы обновить, но он не хочет обновляться сам, понадобится ручная доработка.

Нам предлагают снести jellyfin-ffmpeg5, вместо него поставить jellyfin-ffmpeg6, я не против. Устанавливаем обновления.

Апгрейд до Ubintu Server 22.04 LTS

do-release-upgrade
linux

Обновление релиза не рекомендуют запускать по SSH, а если запускать, то дополнительная служба появится на порту 1022. Продолжаем.

linux

Обновление может занять несколько часов. Продолжаем.

linux

Начинается апгрейд. В процессе апгрейда нам будут задавать вопросы. 

linux

Например, какой ставить fuse.conf? Я там кое что менял, поправлю потом, ставлю из пакета: "Y".

linux

Аналогичный вопрос про minidlna.conf, ответ тоже аналогичный.

linux

Продолжаем апгрейд.

linux

Удалить устаревшие пакеты? Соглашаюсь.

linux

Обновление системы завершено. Продолжаем для перезагрузки.

linux

Сервер перезагружается. Welcome to Ubuntu 22.04.4 LTS. Даже чуть более новая версия поставилась, чем предлагалось ранее. Проверим текущую версию ОС:

cat /etc/*release*
linux

У нас Ubuntu Server 22.04.4 LTS. Апгрейд Ubuntu Server 12.04 до версии 22.04 успешно завершён.

Останется только убедиться, что наше ПО работает на этом сервере, починить при необходимости. Если всё в порядке, снапшот можно удалить и считать что мы молодцы.

Теги

 

Похожие материалы