Hey all,
I'd seen a couple of people groaning that after Dapper went end-of-life they couldn't upgrade to Hardy. I just managed to work around this and get Dapper upgraded, so I'll document the required tricks here. These details might perhaps want to go in the EOLUpgrades wiki page.
The problem
-----------
If you follow the instructions at https://help.ubuntu.com/community/EOLUpgrades to upgrade Ubuntu 6.06 (Dapper) to 8.04 (Hardy), with /etc/apt/sources.list set only to refer to the old-releases server, the do-release-upgrade command will fail with the error "Getting upgrade prerequisites failed". This is because it believes being able to access dapper-backports at archive.ubuntu is vital to be able to upgrade.
Even if sources.list does not mention archive.ubuntu.com this dependency will be re-inserted by the Hardy upgrade scripts and the upgrade will fail.
The solution
------------
DISCLAIMER: I've tried this trick on exactly *one* machine. Back up first.
We must do two tricks to make the upgrade go right:
1. Make sure the Hardy update script looks to old-releases.ubuntu.com instead of archive.ubuntu.com.
2. Ensure that Hardy can get its packages during the upgrade; these *will* come from archive.ubuntu.com.
The first trick is most difficult. When we run do-release-upgrade, the first thing it does is download the hardy upgrade scripts and run those. Run do-release-upgrade and watch it fail. Then do an ls -l in /tmp. You should find a very recently created directory with a random-looking name. If it contains a file called 'hardy', bingo -- this is where the Hardy scripts were downloaded.
Supposing the hardy scripts were put in /tmp/aaaaaa. Edit /tmp/aaaaaa/prerequists-sources.dapper.list and change archive.ubuntu.com to old-releases.ubuntu.com.
The second trick is we must have lines in /etc/apt/sources.list for *both* archive.ubuntu.com AND old-releases.ubuntu.com. This is because the update script will make an initial hardy sources list using this as a reference, just swapping out 'dapper' for 'hardy'. Dapper is only on old-releases, and hardy is only on archive, so we need to mention both so it works both before and after.
With all this done, we kick off the upgrade by running:
cd /tmp/aaaaaa (replacing 'aaaaaa' with the path the hardy scripts ended up in)
./hardy --mode=server --frontend=DistUpgradeViewText
Hope this helps stragglers like me get their ancient distros somewhere near the present decade
Chris
Bookmarks