Больная голова рукам покоя не дает: обновляем Ubuntu старых версий

Не могу терпеть безделье больше одного дня, а ещё и болеть – тем более скучно. Поэтому нотубук в кровать – и вперёд, покорять обновление убунты очень древней версии. А что такого, спросите вы? А то, что в моём случае версия 7.04 уже давно не поддерживается, и не поддерживается даже следующая за ней 7.10. Поэтому все штатные процедуры обновления Линукса падают с фатальными ошибками.
 

Причина в том, что в штатном репозитории убунты archive.ubuntu.com уже нет дистрибутивов тех версий, по которым поддержка прекращена. Но ничего не пропало: всё живёт на old-releases.ubuntu.com.

Итак, работаем из-под sudo. Первый шаг: открываем на редактирование файл /etc/apt/sources.list и меняем там *.archive. на old-releases. Строки в конце файла про security лучше пока закомментировать.

Запускаем традиционные apt-get update, apt-get upgrade, и на всякий случай apt-get install update-manager, если у вас его не было. Затем пытаемся сказать do-release-upgrade и получаем примерно такую уйню:

Checking for a new ubuntu release
Failed Upgrade tool signature
Failed Upgrade tool
Done downloading
extracting ‘/tmp/tmpaIgInN/gutsy.tar.gz’

IOError: [Errno 2] No such file or directory: ‘/tmp/tmpaIgInN/gutsy.tar.gz’

В чём дело? Дело в том, что дуралеи из Ubuntu не обучили update-manager скачивать дистрибутивы из old-releases. Не пытайтесь найти где он берёт этот URL – зря потратите время. Лучше запустить обновление напрямую. Обратите внимание, как именно у вас лично назвалась эта временная директория, и попробуйте так:

cd /tmp/tmpaIgInN
wget http://old-releases.ubuntu.com/ubuntu/dists/gutsy/main/dist-upgrader-all/current/gutsy.tar.gz.gpg
wget http://old-releases.ubuntu.com/ubuntu/dists/gutsy/main/dist-upgrader-all/current/gutsy.tar.gz
gpg –keyring /etc/apt/trusted.gpg –verify gutsy.tar.gz.gpg gutsy.tar.gz
tar zxvf gutsy.tar.gz

Делаем пару магических пассов:

perl -p -i.feisty -e ‘s/(http:\/\/).*archive(.ubuntu.com)/${1}old-releases$2/’ prerequists-sources.list
perl -p -i.feisty -e ‘s/feisty/gutsy/g’ /etc/apt/sources.list

Теперь обновляем систему:

./gutsy –frontend DistUpgradeViewText –mode=server

Ждем пока обновится , перезагрузится машина и проверяем версию системы:

lsb_release -a

У вас должно получиться Gutsy 7.10. Источник волшебного способа здесь.

Дальше нужно снова отредактировать /etc/apt/sources.list, чтобы убедиться, что там указаны old-releases для gutsy. И снова запустить do-release-upgrade для апгрейда до следующей версии.

Следующая версия называется hardy. На данный момент она поддерживается, а значит, присутствует в штатных дистрибутивах. Вовремя подсуньте правильные ссылки в sources.list, и её уже можно обновить и обновлять до более свежих версий без лишнего шаманства.

Процесс обновления требует стабильного соединения с сервером (и сервера – с интернетом), и может занять до часа времени на каждую версию. Не спите в процессе – установщик будет задавать некоторые вопросы. Успехов!