This (very short) howto is based on the upgrades done by BzzWareAS. The upgrades is mainly from Woody (Venus) installations to a sarge-based installation.


BzzWareAS is in no way responsible for any damage caused by following this howto, but if you're preparred to pay, you may get support from BzzWareAS or other parties listed here . If needed, you may send an email to support at

This is a preliminary howto


First make sure you have a backup of the ldap-db

sudo invoke-rc.d slapd stop
sudo slapcat -l tjener.ldif

You really should have a working backup, preferable on another machine

If you are using static configuration for eth0, please set dns-information in /etc/network/interfaces before installing resolvconf (part of the upgrade), by adding these lines:

dns-search intern

When doing upgrades from one distribution, it's not efficient to look at all the changelogs during the upgrades. Therefor, we set listchanges to be quiet

sudo update-ini-file /etc/apt/listchanges.conf apt frontend none
sudo update-ini-file /etc/apt/listchanges.conf apt confirm 0

Update the woody installation

First thing we do is to have an uptodate woody installation. Make sure that your sources list points to woody (or woody/updates for security) and not to sarge. Then update the package list, and download all the packages first

sudo vi /etc/apt/sources.list
sudo apt-get update
sudo apt-get -dy dist-upgrade </dev/null >& woody-upgrade_download.log &

Then you install the new packages for woody.

sudo aptitude -y dist-upgrade

Remove some package that has caused some trouble

sudo apt-get remove --purge libtext-iconv-perl libxml-twig-perl

Do the upgrade

Replace woody with sarge in sources.list (please do a check afterwards)

echo -e ":%s/woody/sarge/g\n:wq" | sudo vi /etc/apt/sources.list

# During the upgrade, you will need a lot of free space. For a combined server, you will need aprox. 1 GB for both /usr and /var/cache/apt/archives

df -h /usr /var/cache/apt/archives

Downloading ~1GB do take a while, so we put that job in the background and go home or take lunch during the download.

sudo aptitude -dy dist-upgrade </dev/null >& aptitude_dist-upgrade_download.log &

When all the packages are downloaded, it's time to start the actual upgrade. Since sudo unsets most environment variables, we dont run sudo aptitude, but rather sudo su - , then do the upgrade

sudo su -
export DEBIAN_FRONTEND=noninteractive
yes "" | \
aptitude -y dist-upgrade >& aptitude_sarge_dist-upgrade.log &

After the upgrade is done, you should check that the recomends of debian-edu-* and education-* packages is installed. You can also use aptitude to remove packages that are not a dependency of the debian-edu-*^and education-* packages. But be carefull, this could also ruin your system

sudo aptitude

Post upgrade configuration

Mailserver is changed from exim3 to exim4, and we need to set up the symlinks that normally would be set up by cfengine during an installation.

sudo ln -s exim-ldap-server-v4.conf /etc/exim4/exim4.conf

Ldap also needs to be set up again

sudo invoke-rc.d slapd stop
sudo mv /etc/default/slapd /etc/default/slapd.woody
sudo mv /etc/default/slapd.dpkg-dist /etc/default/slapd
grep -v ^# /etc/default/slapd | grep -q ^SLAPD_SERVICES || \
  echo 'SLAPD_SERVICES="ldap:/// ldaps:///"' | sudo tee -a /etc/default/slapd
sudo mv /etc/ldap/slapd.conf /etc/ldap/slapd-upgrade.conf
sudo ln -s /etc/ldap/slapd-sarge_debian-edu.conf /etc/ldap/slapd.conf
grep "^TLS_REQCERT never" /etc/ldap/ldap.conf || \
  echo "TLS_REQCERT never" | sudo tee -a  /etc/ldap/ldap.conf

sudo invoke-rc.d slapd start

LDAP users

Now is a good time to check that your users still exists

getent passwd

If they dont exists, your ldap db is probably corrupt, and you need to fix it from the ldif you saved at the beginning.

Pam configuration

With sarge, we got the possibility to include file in the pam configuration files, and therefor the pam config has changed since woody First set up normal pam config

cd /etc/pam.d
for ALL in *.dpkg-new ; do
  BASE=$(basename $ALL .dpkg-new)
  test -h $BASE || continue
  sudo rm $BASE
  sudo mv $ALL $BASE

Set up symlinks to include ldap authentication First move aside the old configs

for ALL in common-*-ldap-debian-edu ; do
  BASE=$(basename $ALL -ldap-debian-edu)
  test -f $BASE || continue
  sudo mv $BASE $BASE-org
  sudo ln -s $ALL $BASE
for ALL in common-*-debian-edu ; do
  BASE=$(basename $ALL -debian-edu)
  test -f $BASE || continue
  sudo mv $BASE $BASE-org
  sudo ln -s $ALL $BASE

kdm configuration

set opp kdm to the new directives

sudo /usr/bin/update-ini-file /etc/kde3/kdm/kdmrc 'General' FifoDir ''
sudo /usr/bin/update-ini-file /etc/kde3/kdm/kdmrc 'X-*-Core' AllowShutdown None
sudo /usr/bin/update-ini-file /etc/kde3/kdm/kdmrc 'X-:*-Core' AllowShutdown Nonesudo /usr/bin/update-ini-file /etc/kde3/kdm/kdmrc 'X-*-Greeter' UserList False

If this is a thin client server, and you are using old ltsp3/4-clients, you need to set kdm up to allow remote connections

sudo /usr/bin/update-ini-file /etc/kde3/kdm/kdmrc 'Xdmcp' Enable true
grep -e "^\* *#any host can get a login window" /etc/kde3/kdm/Xaccess || \
  echo "*    #any host can get a login window" | \
  sudo tee -a /etc/kde3/kdm/Xaccess

We had to use a hack to set some variables in woody. This is no longer needed, infact, it will break things if the old hack is still there in sarge

test -h /etc/X11/Xsession && test -f /etc/X11/Xsession.dpkg-new && \
  sudo rm /etc/X11/Xsession && \
  sudo mv /etc/X11/Xsession.dpkg-new /etc/X11/Xsession

Cupsys also might need a symlink to get the correct configuration

sudo ln -sf cupsd-debian-edu.conf /etc/cups/cupsd.conf

Thin clients

hmm, here this tutorial gets a bit old, using ltsp4.x instead of the new debian-based ltsp Check that /etc/dhcp3/dhcpd.conf points to the correct boot file

grep "filename" /etc/dhcp3/dhcpd.conf | grep -v "^#" | head
sudo /etc/init.d/dhcp3-server restart

Check that the tftp server exports the correct file