Понадобилось мне недавно обновить Ubuntu 16.04 до 18.04, причём нужно было не переустановить, а именно выполнить обновление. Но система заругалась на неверные ключи даже после их добавления. Тогда, как говорил Ленин, «пойдём другим путём».
Внимание! Если вы попробуете повторить это действие, вы делаете всё на свой страх и риск. Гарантий успешного обновления вам никто не даст.
Кстати, значительную часть операций можно делать как в консоли, так и с использованием графического интерфейса. Лично мне в консоли удобнее наблюдать за процессом.
Подготовка
Перед обновлением обязательно сделайте бэкап нужных разделов (корень и домашняя папка, если она на отдельном) на внешний диск (GPartEd или любое подобное средство). И вообще, при любых действиях, могущих повредить установленную систему, первым правилом должна стать фраза «вначале бэкап, затем эксперименты».
Для начала вычищаем весь кэш с информацией о пакетах из папки /var/lib/apt/lists. Можно просто удалить, бэкап раздела у нас есть, да и файлы восстановятся при выполнении команды
sudo apt update
Важный момент − также нужно отключить все посторонние репозитории. Теоретически они не повредят, а вот на практике лучше не играться, тем более, что система при штатном обновлении версии тоже отключает. Снова же, поскольку бэкап раздела вналичии, можно просто удалить всё из содержимое из папок /etc/apt/sources.list.d и /etc/apt/trusted.gpg.d. Кому интересно, в первой папке находятся файлы с информацией о репозиториях, а во второй ключи с цифровыми подписями.
Теперь нужно указать, что мы хотим получить сведения о пакетах не для версии 16.04, а для 18.04, на которую планируем обновиться. Для этого в файле /etc/apt/sources.list вручную везде заменяем слово «xenial» на «bionic», можно поиском и заменой. Естественно, редактировать этот файл следует с правами суперпользователя.
Важно! Иногда посторонние репозитории (не PPA) добавляются в этот файл, их нужно закомментировать. Я, если честно, забыл, но, слава Ктулху, всё обновилось нормально.
Обновление
Подготовительные операции завершены, стоит ещё раз всё проверить и убедиться, что сделано всё правильно. После этого выполняем обновление:
sudo apt update && sudo apt dist-upgrade
Обновление может занять несколько десятков минут, порой даже больше часа. Здесь всё зависит от скорости подключения к интернету и от мощности компьютера. Нужно дождаться завершения. Чтобы не скучать в это время, я подготовил список посторонних репозиториев для новой версии. Я уже делал подобное обновление на другом компьютере с примерно таким же набором репозиториев, поэтому просто скопировал оттуда на флешку.
После того, как первая часть обновления завершится, систему не перезагружаем, даже если нас об этом попросят − в этом случае могут быть неприятные неожиданности. Вместо этого подключаем необходимые репозитории, я просто скопировал нужные файлы в /etc/apt/sources.list.d и /etc/apt/trusted.gpg.d. Также были заменены файлы /etc/apt/sources.list и /etc/apt/trusted.gpg. И не забываем проверить и при необходимости изменить владельца файлов и права доступа к ним.
Ещё раз делаем обновление системы:
sudo apt update && sudo apt dist-upgrade
Если система ругается на отсутствующие ключи, можно установить приложение Y PPA Manager и добавить ключи с его помощью, для многих это проще, чем делать из консоли.
Проверка результата
Когда второе обновление завершится, смотрим версию системы:
cat /etc/lsb-release
Порядок, белочка ушла, вместо неё пришёл бобёр. Но как раз здесь нас может ожидать подвох. Я на всякий случай решил не перезагружаться и подумать, оказалось не зря. Проверил установленную версию Cinnamon:
cinnamon --version
И вот здесь ожидал сюрприз − система заругалась, что графическое окружение не установлено, а работает на том, что было загружено в память при запуске. Вспомнил, что когда наблюдал за скачиванием пакетов, этого в списке не было. Не вопрос, ставлю:
sudo apt install cinnamon nemo
Вот здесь вполне может ожидать сюрприз − при отсутствующем графическом окружении вы систему нормально не загрузите. Так что проверить стоит. Альтернативный вариант:
aptitude search cinnamon
Смотрим на состояние, первый символ в строке. Если это «i», значит, установлено. Вместо «cinnamon» можно указать «gnome-shell», «mate-desktop» и прочее, что вы используете..
Вот теперь можно попробовать перезагрузить компьютер. У меня система запустилась без проблем и танцев с бубном.
После перезагрузки рекомендую проверить старые приложения, которые были в 16.04 (qutim и подобные, для которых новые версии не собраны под 18.04). У меня заработали без проблем, хотя эти же пакеты под 18.04 нормально не устанавливались, ругаясь на неразрешимые зависимости.
Ну и напоследок общее впечатление. Несмотря на необходимость доработки напильником мелочей (темы оформления стоит обновить и т.д.), в целом результат соответствовал ожиданиям.
Comments: