Вопрос или проблема
Я наконец-то добрался до возможности попробовать обновить свою установку Ubuntu Lunar. К сожалению, мой опыт обновления до Lunar был крайне неприятным, поэтому я всё время этого откладывал.
Я вижу, что Lunar больше не поддерживается do-release-upgrade. Основываясь на https://help.ubuntu.com/community/EOLUpgrades, я вручную обновил свой sources.list, чтобы указать на old-releases. В частности:
deb http://old-releases.ubuntu.com/ubuntu/ lunar main restricted
deb http://old-releases.ubuntu.com/ubuntu/ lunar-updates main restricted
deb http://old-releases.ubuntu.com/ubuntu/ lunar universe
deb http://old-releases.ubuntu.com/ubuntu/ lunar-updates universe
deb http://old-releases.ubuntu.com/ubuntu/ lunar multiverse
deb http://old-releases.ubuntu.com/ubuntu/ lunar-updates multiverse
deb http://old-releases.ubuntu.com/ubuntu/ lunar-backports main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu lunar-security main restricted
deb http://old-releases.ubuntu.com/ubuntu lunar-security universe
deb http://old-releases.ubuntu.com/ubuntu lunar-security multiverse
Тем не менее, выдает 404 на apt update:
❯ sudo apt update
Игнорирование:13 http://old-releases.ubuntu.com/ubuntu lunar InRelease
Игнорирование:17 http://old-releases.ubuntu.com/ubuntu lunar-updates InRelease
Игнорирование:20 http://old-releases.ubuntu.com/ubuntu lunar-backports InRelease
Игнорирование:22 http://old-releases.ubuntu.com/ubuntu lunar-security InRelease
Ошибка:23 http://old-releases.ubuntu.com/ubuntu lunar Release
404 Not Found [IP: 91.189.91.124 80]
Ошибка:24 http://old-releases.ubuntu.com/ubuntu lunar-updates Release
404 Not Found [IP: 91.189.91.124 80]
Ошибка:25 http://old-releases.ubuntu.com/ubuntu lunar-backports Release
404 Not Found [IP: 91.189.91.124 80]
Ошибка:26 http://old-releases.ubuntu.com/ubuntu lunar-security Release
404 Not Found [IP: 91.189.91.124 80]
Чтение списков пакетов... Готово
(Различные lp ppas и другие сторонние репозитории не указаны. Я ожидаю, что они вызовут свои собственные проблемы, но буду разбираться с ними, когда дойду до этого момента.)
Я посмотрел на http://old-releases.ubuntu.com/ubuntu/dists/ и вижу, что Lunar, похоже, отсутствует здесь.
Какие у меня есть варианты для относительно безопасного обновления этой установки Lunar? Я использую эту конкретную установку с Focal и не очень хочу пробовать переустановку, если это возможно.
Кажется, мне удалось разобраться с проблемой, хотя я еще не знаю, насколько функциональна моя система. Я оставляю это здесь в качестве ответа для следующего человека, который будет искать.
Сообщение об ошибке do-release-upgrade указывает, и URL, на который оно ссылается, не существует. Вместо этого оно перенаправляет на https://ubuntu.com/about/release-cycle, который на самом деле не рассматривает ошибку или как с ней обращаться. Таблица релизов, к которой вы можете получить доступ отсюда, в настоящее время показывает Lunar как End Of Life.
Отдельный поиск приведет вас к https://help.ubuntu.com/community/EOLUpgrades. Этот документ может быть устаревшим или не адекватно освещать сообщения, которые могут выдать do-release-upgrade. Более того, сообщения об ошибках, которые порождает do-release-upgrade, довольно бесполезны.
В частности, документ начинает с предположения, что вам нужно перейти на old-releases. В данном конкретном случае, т.е. Lunar в июле 2024 года, это не нужно и на самом деле не сработает, поскольку репозитории Lunar все еще находятся в обычном архиве. Это противоречит документации, предполагающей, что потребуется old-releases, поскольку он явно является EOL. Поэтому прежде чем пытаться переключиться на old-releases, вручную проверьте, где находятся репозитории вашего релиза, проверив http://old-releases.ubuntu.com/ubuntu/dists/ и http://archive.ubuntu.com/ubuntu/dists/. Если ваш релиз уже находится в old-releases, обновите свой sources.list соответственно согласно инструкциям.
В том же документе, однако, скрыто в “Неподдерживаемых обновлениях”, находится настоящая проблема. Хотя это нигде в этих документах не указано явно, do-release-upgrade не может перескакивать через несколько версий, и do-release-upgrade пытается перейти на последнюю версию независимо от того, какая версия была установлена. Сообщение об ошибке просто указывает, что нельзя обновить с <installed codename>
на <latest codename>
и не предоставляет никакой дополнительной информации о причине. Оно не предлагает, что требуется многопроходное обновление. Документация говорит, что многопроходные обновления могут иногда быть необходимы, но я подозреваю, что вам всегда потребуется это сделать.
Чтобы действительно выполнить обновление, вам нужно следовать инструкциям в разделе о неподдерживаемых обновлениях на https://help.ubuntu.com/community/EOLUpgrades. В частности, для каждого промежуточного релиза ubuntu между вашим текущим и тем местом, куда вы хотите попасть, вам нужно будет скачать UpgradeTool с https://changelogs.ubuntu.com/meta-release и выполнить его один за другим.
Когда вы это сделаете, все обычные предостережения о том, что делать, когда вы применяете крупные обновления, применимы. Мое обновление с Lunar на Mantic полностью поломало Grub, например, и потребовалось использовать BootRepair для удаления и переустановки grub. Поэтому лучше всего иметь под рукой liveUSB какой-либо конфигурации, когда вы собираетесь это делать. Также сделайте резервную копию всех данных, которые вам важны, на случай, если что-то сломается безвозвратно.
Однако имейте в виду, что я не уверен, что произойдет, если ваш текущий релиз находится в old-releases, и после него есть дополнительные релизы, которые также находятся в old-releases. Если первое обновление сработает, вам возможно придется обновить sources.list еще раз при запуске следующего обновления. Я не уверен, сработает ли первое обновление или нет, поскольку целевые репозитории не существуют там, где их ожидают увидеть.
ИЗМЕНЕНИЕ: Дополнительные заметки
С 24 ноября 2024 года mantic
находится в old-releases, в то время как lunar
все еще в архиве. Я предполагаю, что есть кто-то, где-то, кто понимает, почему это так.
Необходимый путь обновления:
lunar -> mantic -> noble -> oracular
(релизы) (старый) (релизы) (релизы)
UpgradeTool для mantic
не работает, потому что не может найти репозитории в archive
. Единственный способ, который кажется решаемым, это вручную обновить с lunar
на mantic
, т.е. изменить apt sources.list, чтобы указать на репозитории mantic в old-releases и выполнить upgrade и dist-upgrade. Другие сторонние репозитории и PPA (обычно sources.list.d
) лучше отключить для этого процесса. Хотя вы можете повезти, планируйте на значительные поломки, пытаясь это сделать.
После перехода на mantic
, do-release-upgrade
или UpgradeTool для noble
должны помочь вам перейти на noble
.
Ответ или решение
Обновление установки Ubuntu Lunar, достигшей конца жизненного цикла
Обновление операционной системы — это одна из ключевых задач для поддержания работоспособности и безопасности вашего программного обеспечения. Если вы столкнулись с проблемой обновления своего дистрибутива Ubuntu Lunar, который достиг конца жизненного цикла, вы не одиноки. В данной статье мы разберёмся, как безопасно и эффективно выполнить такой процесс, учитывая конкретные проблемы, с которыми вы, возможно, уже столкнулись.
1. Проблемы с репозиториями
Согласно вашему описанию, вы заметили, что стандартная команда do-release-upgrade
больше не поддерживает вашу версию Lunar. Вы правильно обновили файл sources.list
, указав репозитории old-releases. Однако, несмотря на это, вы столкнулись с ошибками 404 при попытке обновить пакеты через Apt. Это связано с тем, что на данный момент репозитории для Lunar могут быть недоступны в old-releases.
Решение:
Прежде чем предпринимать дальнейшие шаги, важно проверить доступность репозиториев для вашего текущего дистрибутива. Вы можете сделать это, перейдя по ссылкам http://old-releases.ubuntu.com/ubuntu/dists/ и http://archive.ubuntu.com/ubuntu/dists/. Убедитесь, что ваша версия ещё находится в доступных репозиториях.
2. Многоуровневая миграция
Согласно документации, do-release-upgrade
не поддерживает многоуровневые обновления. Это означает, что вы не сможете выполнить обновление напрямую с одной устаревшей версии на последнюю. Вам может понадобиться пройти через каждый промежуточный релиз, например:
- lunar -> mantic -> noble -> oracular
Рекомендации:
Для выполнения такого обновления следует использовать инструмент для обновления (UpgradeTool
). Перед этим вам потребуется:
- Защитить ваши данные, создав резервные копии.
- Отключить сторонние репозитории и PPA для минимизации рисков.
- Поочерёдно изменять ваш
sources.list
, указывая на репозитории каждой промежуточной версии.
3. Процесс обновления
-
Измените
sources.list
на mantic:
Замените все упоминанияlunar
наmantic
в вашем файлеsources.list
, указав корректные репозитории (если они существуют). -
Обновите систему:
Выполните команды:sudo apt update sudo apt upgrade sudo apt dist-upgrade
-
Обновите до mantic:
После успешного обновления системы, проверьте, сможете ли вы снова запуститьdo-release-upgrade
для перехода к следующему релизу noble.
4. Восстановление загрузчика
Обратите внимание, что после обновлений может возникнуть необходимость в восстановлении загрузчика GRUB. Если возникнут проблемы с загрузкой, имейте под рукой Live USB, чтобы воспользоваться инструментами восстановления, такими как Boot-Repair.
5. Заключение
Процесс обновления устаревших версий Ubuntu может быть сложным, требующим внимания к деталям и внимательного выполнения инструкций. Регулярные резервные копии и отключение сторонних репозиториев помогут минимизировать потенциальные проблемы. Всегда оставайтесь в курсе текущих обновлений и документации от Ubuntu для получения свежей информации и рекомендаций. Если вы следуете всем указанным шагам, вы сможете успешно обновить вашу версию Ubuntu, выйдя на современные и поддерживаемые релизы.