For some years now, I have wondered how we should handle laptops in -Debian Edu. The Debian Edu infrastructure is mostly designed to -handle stationary computers, and less suited for computers that come -and go.
- -Now I finally believe I have an sensible idea on how to adjust -Debian Edu for laptops, by introducing a new profile for them, for -example called Roaming Workstations. Here are my thought on this. -The setup would consist of the following:
- --
-
-
- During installation, the user name of the owner / primary usre of - the laptop is requested and a local home directory is set up for - the user, with uid and gid information fetched from the LDAP - server. This allow the user to work also when offline. The - central home directory can be available in a subdirectory on - request, for example mounted via CIFS. It could be mounted - automatically when a user log in while on the Debian Edu network, - and unmounted when the machine is taken away (network down, - hibernate, etc), it can be set up to do automatic mounting on - request (using autofs), or perhaps some GUI button on the desktop - can be used to access it when needed. Perhaps it is enough to use - the fish protocol in KDE? - -
- Password checking is set up to use LDAP or Kerberos - authentication when the machine is on the Debian Edu network, and - to cache the password for offline checking when the machine unable - to reach the LDAP or Kerberos server. This can be done using - libpam-ccreds - or the Fedora developed - System - Security Services Daemon packages. - -
- File synchronisation with the central home directory is set up - using a shared directory in both the local and the central home - directory, using unison. - -
- Printing should be set up to print to all printers broadcasting - their existence on the local network, and should then work out of - the box with CUPS. For sites needing accurate printer quotas, some - system with Kerberos authentication or printing via ssh could be - implemented. - -
- For users that should have local root access to their laptop, - sudo should be used to allow this to the local user. - -
- It would be nice if user and group information from LDAP is - cached on the client, but given that there are entries for the - local user and primary group in /etc/, it should not be needed. - -
I believe all the pieces to implement this are in Debian/testing at -the moment. If we work quickly, we should be able to get this ready -in time for the Squeeze release to freeze. Some of the pieces need -tweaking, like libpam-ccreds should get support for pam-auth-update -(#566718) and nslcd (or -perhaps debian-edu-config) should get some integration code to stop -its daemon when the LDAP server is unavailable to avoid long timeouts -when disconnected from the net. If we get Kerberos enabled, we need -to make sure we avoid long timeouts there too.
- -If you want to help out with implementing this for Debian Edu, -please contact us on debian-edu@lists.debian.org.
+The last few days I have done some upgrade testing in Debian, to +see if the upgrade from Lenny to Squeeze will go smoothly. A few bugs +have been discovered and reported in the process +(#585410 in nagios3-cgi, +#584879 already fixed in +enscript and #584861 in +kdebase-workspace-data), and to get a more regular testing going on, I +am working on a script to automate the test.
+ +The idea is to create a Lenny chroot and use tasksel to install a +Gnome or KDE desktop installation inside the chroot before upgrading +it. To ensure no services are started in the chroot, a policy-rc.d +script is inserted. To make sure tasksel believe it is to install a +desktop on a laptop, the tasksel tests are replaced in the chroot +(only acceptable because this is a throw-away chroot).
+ +A naive upgrade from Lenny to Squeeze using aptitude dist-upgrade +currently always fail because udev refuses to upgrade with the kernel +in Lenny, so to avoid that problem the file /etc/udev/kernel-upgrade +is created. The bug report +#566000 make me suspect +this problem do not trigger in a chroot, but I touch the file anyway +to make sure the upgrade go well. Testing on virtual and real +hardware have failed me because of udev so far, and creating this file +do the trick in such settings anyway. This is a +known +issue and the current udev behaviour is intended by the udev +maintainer because he lack the resources to rewrite udev to keep +working with old kernels or something like that. I really wish the +udev upstream would keep udev backwards compatible, to avoid such +upgrade problem, but given that they fail to do so, I guess +documenting the way out of this mess is the best option we got for +Debian Squeeze.
+ +Anyway, back to the task at hand, testing upgrades. This test +script, which I call upgrade-test for now, is doing the +trick:
+ ++ ++#!/bin/sh +set -ex + +if [ "$1" ] ; then + desktop=$1 +else + desktop=gnome +fi + +from=lenny +to=squeeze + +exec < /dev/null +unset LANG +mirror=http://ftp.skolelinux.org/debian +tmpdir=chroot-$from-upgrade-$to-$desktop +fuser -mv . +debootstrap $from $tmpdir $mirror +chroot $tmpdir aptitude update +cat > $tmpdir/usr/sbin/policy-rc.d <<EOF +#!/bin/sh +exit 101 +EOF +chmod a+rx $tmpdir/usr/sbin/policy-rc.d +exit_cleanup() { + umount $tmpdir/proc +} +mount -t proc proc $tmpdir/proc +# Make sure proc is unmounted also on failure +trap exit_cleanup EXIT INT + +chroot $tmpdir aptitude -y install debconf-utils + +# Make sure tasksel autoselection trigger. It need the test scripts +# to return the correct answers. +echo tasksel tasksel/desktop multiselect $desktop | \ + chroot $tmpdir debconf-set-selections + +# Include the desktop and laptop task +for test in desktop laptop ; do + echo > $tmpdir/usr/lib/tasksel/tests/$test <<EOF +#!/bin/sh +exit 2 +EOF + chmod a+rx $tmpdir/usr/lib/tasksel/tests/$test +done + +DEBIAN_FRONTEND=noninteractive +DEBIAN_PRIORITY=critical +export DEBIAN_FRONTEND DEBIAN_PRIORITY +chroot $tmpdir tasksel --new-install + +echo deb $mirror $to main > $tmpdir/etc/apt/sources.list +chroot $tmpdir aptitude update +touch $tmpdir/etc/udev/kernel-upgrade +chroot $tmpdir aptitude -y dist-upgrade +fuser -mv +
I suspect it would be useful to test upgrades with both apt-get and +with aptitude, but I have not had time to look at how they behave +differently so far. I hope to get a cron job running to do the test +regularly and post the result on the web. The Gnome upgrade currently +work, while the KDE upgrade fail because of the bug in +kdebase-workspace-data
+ +I am not quite sure what kind of extract from the huge upgrade logs +(KDE 167 KiB, Gnome 516 KiB) it make sense to include in this blog +post, so I will refrain from trying. I can report that for Gnome, +aptitude report 760 packages upgraded, 448 newly installed, 129 to +remove and 1 not upgraded and 1024MB need to be downloaded while for +KDE the same numbers are 702 packages upgraded, 507 newly installed, +193 to remove and 0 not upgraded and 1117MB need to be downloaded
+ +I am very happy to notice that the Gnome desktop + laptop upgrade +is able to migrate to dependency based boot sequencing and parallel +booting without a hitch. Was unsure if there were still bugs with +packages failing to clean up their obsolete init.d script during +upgrades, and no such problem seem to affect the Gnome desktop+laptop +packages.