7.04 to 7.10 (Feisty to Gutsy)
Before you start
Please make sure you've read and understood the main EOLUpgrade page.
I would recommend using clonezilla for backing up your current installation. It is very easy to backup and restore your partitions with clonezilla. It takes less then 30 minutes to backup/restore a 20Gb root filesystem which has 4-5 Gb used space.
Requirements
- /etc/apt/sources.list
Please make sure you have the following sources.list.
## EOL upgrade sources.list # Required deb http://old-releases.ubuntu.com/ubuntu/ feisty main restricted universe multiverse deb http://old-releases.ubuntu.com/ubuntu/ feisty-updates main restricted universe multiverse deb http://old-releases.ubuntu.com/ubuntu/ feisty-security main restricted universe multiverse # Optional #deb http://old-releases.ubuntu.com/ubuntu/ feisty-backports main restricted universe multiverse
You can make use of -backports, -proposed repositories if you want. For more information about repositories see Repositories/Ubuntu.
The upgrade
- Make sure your sources.list is correct (see requirements)
- Update the package list and get fully upgrade all packages
sudo aptitude update && sudo aptitude upgrade
NOTE: It could be that you just upgraded your kernel, if this is the case, please reboot!
- Upgrade your complete system
sudo do-release-upgrade
This command will fail, because it cannot download a specific tarball which is needed to the upgrade, this is due to an error in the meta-release file. It will however leave a subdirectory in /tmp, owned by root. The directory changes on every run of do-release-upgrade, please write down/remember the /tmp directory name, in this case '/tmp/tmpaIgInN/' you will need it in the next step.
$ sudo do-release-upgrade Password: Checking for a new ubuntu release Failed Upgrade tool signature Failed Upgrade tool Done downloading extracting '/tmp/tmpaIgInN/gutsy.tar.gz' Traceback (most recent call last): File "/usr/bin/do-release-upgrade", line 45, in <module> fetcher.run() File "/usr/lib/python2.5/site-packages/UpdateManager/Core/DistUpgradeFetcherCore.py", line 160, in run if not self.extractDistUpgrader(): File "/usr/lib/python2.5/site-packages/UpdateManager/Core/DistUpgradeFetcherCore.py", line 98, in extractDistUpgrader tar = tarfile.open(self.tmpdir+"/"+os.path.basename(self.uri),"r") File "/usr/lib/python2.5/tarfile.py", line 1139, in open return func(name, "r", fileobj) File "/usr/lib/python2.5/tarfile.py", line 1200, in gzopen fileobj = file(name, mode + "b") IOError: [Errno 2] No such file or directory: '/tmp/tmpaIgInN/gutsy.tar.gz'
- Download the tarball manually
First we will make sure we can create and write into the /tmp directory do-release upgrade created. Then we download the gutsy tarball and extract the contents.
sudo chown $USER /tmp/tmpaIgInN # replace /tmp/tmpaIgInN to /tmp/yourrandomdirectory cd /tmp/tmpaIgInN # and here as well wget http://old-releases.ubuntu.com/ubuntu/dists/gutsy/main/dist-upgrader-all/current/gutsy.tar.gz tar zxvf gutsy.tar.gz
- Make sure we can continue upgrading, since two packages are needed we need to change the prerequisites sources as well:
perl -p -i.704 -e 's/(http:\/\/).*archive(.ubuntu.com)/${1}old-releases$2/' prerequists-sources.list
- Problems with installing specific packages
Some users have reported that they still have to download packages from archives.ubuntu.com while everything resides on old-releases. If you have this problem, you could change your /etc/host file to point archive.ubuntu.com to old-releases. Do this by running host old-releases.ubuntu.com | grep address | awk '{print $NF"\tarchive.ubuntu.com"}' | sudo tee -a /etc/hosts. After the upgrade you need to remove this line again from the hosts file, by doing sudo sed -i '$d' /etc/hosts
- Change your sources.list
sudo perl -p -i.704 -e 's/feisty/gutsy/g' /etc/apt/sources.list
- Continue the upgrade process
sudo ./gutsy --frontend DistUpgradeViewText --mode=server
- Check your new version
Reboot your machine and you can now run lsb_release -a to check the new version of Ubuntu.
Known issues
- Package tetex-bin fails during 'sudo aptitude upgrade'
The tetex-bin package is a dependency of Mediawiki. The issue is caused by fmtutil, which interprets the warning 'five years old' as an error and stops the upgrade.
############################################################################### fmtutil: Error! Not all formats have been built successfully. Visit the log files in directory /var/lib/texmf/web2c for details. ############################################################################### This is a summary of all `failed' messages and warnings: `pdfetex -ini -jobname=latex -progname=latex -translate-file=cp227.tcx *latex.ini' possibly failed. `pdfetex -ini -jobname=pdflatex -progname=pdflatex -translate-file=cp227.tcx *pdflatex.ini' possibly failed. `omega -ini -jobname=lambda -progname=lambda lambda.ini' possibly failed. `aleph -ini -jobname=lamed -progname=lamed *lambda.ini' possibly failed.
This is caused by: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=531569
mkdir tmp-pkg cd tmp-pkg wget http://ftp.nl.debian.org/debian/pool/main/t/tetex-bin/tetex-bin_3.0-31_i386.deb wget http://ftp.nl.debian.org/debian/pool/main/t/tetex-bin/libkpathsea4_3.0-31_i386.deb wget http://ftp.nl.debian.org/debian/pool/main/p/poppler/libpoppler0c2_0.4.5-5.1etch3_i386.deb dpkg -i libkpathsea4_3.0-31_i386.deb libpoppler0c2_0.4.5-5.1etch3_i386.deb tetex-bin_3.0-31_i386.deb sudo aptitude upgrade
You can now continue the upgrade process.
Bastiaan Veelo reported and found the solution for this issue. Many thanks!