Weblog entry #294 for simonw
#294
Yet another Etch to Lenny upgrade
Posted by simonw on Mon 22 Dec 2008 at 01:14
Yet another Etch to Lenny upgrade.
This box is a test and development box running: email, web, databases, svn, samba (and using CIF mounts). General dogsbody of a machine, including testing a Catalyst application.
The bot "dpkg" in the Debian IRC channel suggested:
[dpkg] Ensure your etch installation is up to date (aptitude update; aptitude dist-upgrade). Edit your /etc/apt/sources.list and change all non-local mentions of etch or stable to lenny. aptitude update; aptitude install dpkg aptitude; aptitude safe-upgrade; aptitude full-upgrade. Subscribe to <d-d-a> so you know what is going on and ask me about <apt-listbugs> <lenny release notes>.
So I did this more or less.
Upgrade of dpkg and aptitude caused libc-686 to upgrade restarting lots of services with no apparent issues.
I did "aptitude -d safe-upgrade" and "aptitude -d full-upgrade" to get all the packages locally whilst I checked out what it was proposing to do to my system.
"aptitude safe-upgrade" said a load of packages were broken - and after a little head scratching I woke up and realised that "libapache-mod-php5" wasn't needed on the box anyway since it was running Apache2, and that it was upgrading libapache2-mod-php5 as expected. So I removed the packages that were broken before progressing as they were all unneeded.
The upgrade notices gave some important information about Apache config file changes, and how to upgrade my subversion database to db4.6 (you just repair the repository).
The upgrade was pretty slick.
The box had libwiki-toolkit-perl on it, which nagged me repeatedly through the upgrade. I wish I'd just uninstalled the package first, since we don't need it.
Perl upgraded from 5.8 to 5.10, so I had to (re)install some Perl modules using CPAN to get Catalyst working again. We are also one revision ahead of the Lenny Catalyst in our production server, so I had to use the CPAN version of Catalyst. Felt minor guilt pang for not joining the Debian Catalyst packaging group. Because so much Perl is now packaged I didn't have to install anywhere near as much as in previous Debian releases.
Postgres 7.4 was installed and in use before the upgrade. The documented Postgres upgrade script failed at the last step, as Apache was running and holding the database open. Otherwise I was very impressed with the Postgres upgrade script.
/usr/share/doc/postgresql-8.3/README.Debian.gz
Only breakage we've found so far, is that Apache 2.2 with FastCGI module, doesn't correctly (re)set the content-length header with mod-deflate (bug raised). This configuration was broke in Sarge, fixed in Etch, and is broke in Lenny. The work around is to use libapache2-mod-fcgid, which provides an alternative, and seemingly better FastCGI implementation, although I've had to read the source code to learn about the options it provides.
I've been too busy making sure it all works, and figuring out the Apache compression issue to use Lenny, but my colleague was heard muttering things about Perl's improved error reporting, and other enhancements, so sounds like Perl folk will want to get to Lenny ASAP.
Lessons:
Remove unneeded packages before upgrading.
Aptitude is wiser than you are (and wiser than apt-get!).
Consider using a Perl Snapshot bundle if you have a lot of CPAN installed Perl modules.
Consider disabling services for the duration, since they stopping and starting can introduce complexity to the upgrade.
Disconnect Postgres clients before upgrading Postgres! (Doh)
Apache has changes, including to how they do the Debian virtual hosting.
(I was able to accept the maintainer version of apache.conf and have all the websites work instantly - except for the compression bug mentioned, which suggests the Debian file layout for Apache is working to me!).
As regards the debate on releasing Lenny - as Burt Hudson wrote "Perfection is a road, not a destination"; for goodness sake release Lenny when the installer work is done, and no later! As users we see benefits in Perl 5.10, Apache 2.2, and recent Linux kernels are essential both for newer hardware, and for a lot of older hardware the Linux folk messed up support for in past releases.
This box is a test and development box running: email, web, databases, svn, samba (and using CIF mounts). General dogsbody of a machine, including testing a Catalyst application.
The bot "dpkg" in the Debian IRC channel suggested:
[dpkg] Ensure your etch installation is up to date (aptitude update; aptitude dist-upgrade). Edit your /etc/apt/sources.list and change all non-local mentions of etch or stable to lenny. aptitude update; aptitude install dpkg aptitude; aptitude safe-upgrade; aptitude full-upgrade. Subscribe to <d-d-a> so you know what is going on and ask me about <apt-listbugs> <lenny release notes>.
So I did this more or less.
Upgrade of dpkg and aptitude caused libc-686 to upgrade restarting lots of services with no apparent issues.
I did "aptitude -d safe-upgrade" and "aptitude -d full-upgrade" to get all the packages locally whilst I checked out what it was proposing to do to my system.
"aptitude safe-upgrade" said a load of packages were broken - and after a little head scratching I woke up and realised that "libapache-mod-php5" wasn't needed on the box anyway since it was running Apache2, and that it was upgrading libapache2-mod-php5 as expected. So I removed the packages that were broken before progressing as they were all unneeded.
The upgrade notices gave some important information about Apache config file changes, and how to upgrade my subversion database to db4.6 (you just repair the repository).
The upgrade was pretty slick.
The box had libwiki-toolkit-perl on it, which nagged me repeatedly through the upgrade. I wish I'd just uninstalled the package first, since we don't need it.
Perl upgraded from 5.8 to 5.10, so I had to (re)install some Perl modules using CPAN to get Catalyst working again. We are also one revision ahead of the Lenny Catalyst in our production server, so I had to use the CPAN version of Catalyst. Felt minor guilt pang for not joining the Debian Catalyst packaging group. Because so much Perl is now packaged I didn't have to install anywhere near as much as in previous Debian releases.
Postgres 7.4 was installed and in use before the upgrade. The documented Postgres upgrade script failed at the last step, as Apache was running and holding the database open. Otherwise I was very impressed with the Postgres upgrade script.
/usr/share/doc/postgresql-8.3/README.Debian.gz
Only breakage we've found so far, is that Apache 2.2 with FastCGI module, doesn't correctly (re)set the content-length header with mod-deflate (bug raised). This configuration was broke in Sarge, fixed in Etch, and is broke in Lenny. The work around is to use libapache2-mod-fcgid, which provides an alternative, and seemingly better FastCGI implementation, although I've had to read the source code to learn about the options it provides.
I've been too busy making sure it all works, and figuring out the Apache compression issue to use Lenny, but my colleague was heard muttering things about Perl's improved error reporting, and other enhancements, so sounds like Perl folk will want to get to Lenny ASAP.
Lessons:
Remove unneeded packages before upgrading.
Aptitude is wiser than you are (and wiser than apt-get!).
Consider using a Perl Snapshot bundle if you have a lot of CPAN installed Perl modules.
Consider disabling services for the duration, since they stopping and starting can introduce complexity to the upgrade.
Disconnect Postgres clients before upgrading Postgres! (Doh)
Apache has changes, including to how they do the Debian virtual hosting.
(I was able to accept the maintainer version of apache.conf and have all the websites work instantly - except for the compression bug mentioned, which suggests the Debian file layout for Apache is working to me!).
As regards the debate on releasing Lenny - as Burt Hudson wrote "Perfection is a road, not a destination"; for goodness sake release Lenny when the installer work is done, and no later! As users we see benefits in Perl 5.10, Apache 2.2, and recent Linux kernels are essential both for newer hardware, and for a lot of older hardware the Linux folk messed up support for in past releases.