Debian version 5.0 has been released. It is recommended that you upgrade the system to latest version. Upgrading remote Debian server is a piece of cake. In this tutorial, you will learn about upgrading Debian Linux server from Etch to Lenny over ssh session.
Step # 1: Make a Backup
Upgrading system is a complex procedure. I strongly recommend backing up all data and configuration files. The upgrade process is quite reliable, but a hardware failure in the middle of an upgrade could result in a severely damaged system, so make a full system backup.
Step # 2: Apply all etch updates
Make sure etch is up to date and all security patches including kernel installed:
# apt-get update
# apt-get upgrade
Reboot the system if new kernel installed:
# reboot
Step # 3: Update /etc/apt/sources.list
Make a backup copy of /etc/apt/sources.list, enter:
# cp /etc/apt/sources.list /etc/apt/sources.list.etch
Open /etc/apt/sources.list, enter:
# vi /etc/apt/sources.list
Update it as follows (use mirror closest to your location):
# Main deb http://ftp.iitm.ac.in/debian lenny main contrib non-free deb-src http://ftp.iitm.ac.in/debian lenny main contrib non-free # Security deb http://security.debian.org/ lenny/updates main contrib non-free deb-src http://security.debian.org/ lenny/updates main contrib non-free
Save and close the file.
A note about stable /etc/apt/sources.list file
For server you should always use the following file. This file ensures that you always run stable released software. With following config, you do not need to update /etc/apt/sources.list file and you can simply run below mentioned command to upgrade system to stable release:
# Main deb http://http.us.debian.org/debian/ stable main non-free contrib # Source deb-src http://http.us.debian.org/debian/ stable main non-free contrib # Security deb http://security.debian.org/ stable/updates main contrib non-free
Step # 4: Upgrade Debian to from 4.0 to 5.0
The recommended way to upgrade from previous Debian GNU/Linux releases is to use the package management tool aptitude. This program makes safer decisions about package installations than running apt-get directly. First, upgrade the core tools aptitude and apt, enter:
# aptitude update
Now update both apt and aptitude
# apt-get install apt aptitude
OR
# aptitude update apt aptitude
Above two commands will automatically upgrade libc6 and other support libraries. Some running services will be restarted, including ssh, rsyncd xdm, gdm and kdm etc. Now, we have updated apt and aptitude. It is time to apply system update, enter:
# aptitude upgrade
# aptitude install
Above will install required updates to the system. Finally, update entire distribution:
# aptitude dist-upgrade
Above will update the rest of the system i.e. install the newest available versions of all packages, and resolve all possible dependency changes between packages in different releases.
Step # 5: Verify your system
Type the following commands to verify kernel:
# uname -a
Sample output:
Linux debian.nixcraft.in 2.6.26-1-amd64 #1 SMP Sat Jan 10 17:57:00 UTC 2009 x86_64 GNU/Linux
Verify Debian version, enter:
# cat /etc/debian_version
Sample output:
5.0
Verify log files, enter:
# egrep -i 'err|warn' /var/log/dmesg
# egrep -i 'err|warn' /var/log/messages
# tail -f /var/log/dmesg
# tail -f /path/to/other/apps/log
Verify running service and open ports, enter:
# netstat -tulpn
# rcconf
Verify firewall settings, enter:
# iptables -L -n
# ip6tables -L -n
References:
- man page aptitude, apt and other commands.
- Above instructions are tested on 64bit and 32bit server system only. I strongly recommend official release note for further information.
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop













{ 22 comments… read them below or add one }
It maybe would important to mention that for those are on NFS, they have to install nfs-common before executing aptitude upgrade & aptitude install :
“Above two commands will automatically upgrade libc6 and other support libraries. Some running services will be restarted, including ssh, rsyncd xdm, gdm and kdm etc. Now, we have updated apt and aptitude. It is time to apply system update, enter:
# aptitude install nfs-common <– add this
# aptitude upgrade
# aptitude install”
I was stuck with this problem until I find this solution that worked for me.
Thanks for the article but aptitude update; aptitude dist-upgrade done the job for me :)
@Valqk,
Yes, usaully those two command works but I’ve updated over 10 boxes with various configuration and above procedure took care of all issues.
YMMV.
Spoke too early.
For those using xen kernels – WATCH OUT!
Run dist-upgrade twice so you can get xen loaded upgraded and check carefully the menu.lst!!!
I got one dead machine last night, thanks god it wasn’t a production.
Also, be aware – upgrade of passwd can delete some groups or users – check that too.
everything else was fine after upgrade.
:)
2.6.24-etchnhalf.1-686 this kernel may not be updated this way.. so far i have tried and stick with that. But cat /etc/debian_version shows lenny 5.0. So far it will also work for me…..
And read the release-notes !
They document the issues regarding the upgrade the Debian project is aware of :
http://debian.org/releases/lenny/releasenotes
thank u for this tuto;
i have one suggestion :
you can run the following line :
# aptitude upgrade
# aptitude install
# aptitude dist-upgrade
in one line :
#aptitude upgrade && install && dist-upgrade
;-)
Hi valqk,
What do you mean with “dist-upgrade twice”.
We have a production server with Debian 4 Xen Dom0 and 3 DomU (also Debian 4), could you specify where and in which order execute “dist-upgrade”?
Thanks!
Will this upgrade work on ARM devices such as Buffalo Linkstations that are currently running Debian Etch? I dont want to find out the hard way (ie. bricking my system), so if anyone can clarify that would be great.
how to install wi-fi labtop from debian versi 5
It works! But don’t do the upgrade from a X11 based terminal!
I have tried and failed many times before figuring out that X also gets an upgrade and needs to be restarted. Bij restarting X the upgrade procedure is interrrupted. The system will not come online again.
i tried that and it reset my network and i lost my connection!
@Dog Man : my answer is probably very late, but anyway : yes, it’ll probably work on your Buffalo. I upgraded successfully my NSLU2 from Etch to Lenny and then later to Squeeze.
nice post:) thanks a lot. just upgraded a working server with this guide.
Just wanted to know about how long the whole procedure (dist-upgrade) takes?
It depends upon your Internet connection speed and installed software.
i have did this successfully i have directadmin with exim on debian
after this walkthought
exim did some problems with gconv .co files from glibc pakage.
it seemed to me like it was badly installed, apt-get reinstall did not helped.
i have rebuilt exim and proftpd and it did not helped but might was importent.
i did:
aptitude purge libc6
(accepted the solution)
aptitude install libc6-dev
reboot and all problems have gone.
also i had issues with proftpd 32bit copetibility mode
aptitude install libcap2-dev
i did in hope it helps…
after then i saw that php-cgi did not work because of postgresql update
i did:
cd /usr/lib/
ln -s libpq.so libpq.so.4
i hope that is all
Thanks for this How-To, worked very well on a production server. Customer and me happy again. :)
Regards from Malta
Carsten
thanks for this, helped me a updating my server with less fear of doing things wrong. one thing i did just to be sure: after the full install i rebooted and checked if everything was still working. rather break it right now than at some random time when the server has to reboot and then i do not have time to fix issues.
This was just what I was looking for – thank you!
It is really bad advice you give about using “stable” instead of “lenny” in /etc/apt/sources.list
If one does that. The system will suddenly be upgraded, and might stop working. There is a very good reason that this is no longer the default.
A tidbit that the Debian Release notes recommend. Start a recording session, this way if something goes wrong, you will have a log of it:
script -t 2>~/upgrade-lenny.time -a ~/upgrade-lenny.script
Should aid you or whoever else with what could have gone wrong.