Another day, another plan... or not. Regardless, I'm just going to express my feelings at the moment: bored. Yes, I'm bored. I'm looking at the FAI scripts and cringing at the global namespace mess it is. "What is FAI?" you ask. Well, it stands for Fully Automatic Install, and it's a series of BASH shell scripts used to install Debian in an unattended way. Does it work? Yes, for what it's intended to do, install machines. It doesn't quite work for what we want it to do, install and maintain machines. We want to do what's called soft-updates, a term we stole from an unfinished FAI utility script. The features of FAI we want to take advantage of are the configuration file scripting and the file diversions for things like installation tools. Case in point, the update-ispell-dictionary calls update-alternatives for the default ispell dictionary. update-alternatives is an interactive script if not called with the "--auto" command line option. There is no way to shut this off in a config file anywhere. You have to divert the binary and replace it with a null shell script, one that returns a value of '0', or OK. The frustrating thing is that we can't tap into the FAI features without a major rewrite of the entire facility, the entire suite. FAI is somewhat functional in its design in that it uses a lot of BASH functions. These functions are stored in a single file calles subroutines and overridden in other subroutines files specific to architecture or a site customization. Instead, these functions could be rewritten as BASH scripts in and of their own right. We would then have multiple tools to use or override easily that wouldn't overload the BASH namespace environment. (Some *.deb packages use xargs in their postinst scripts, and xargs blows up when fed too many environment variables/functions.) One thing I've often overlooked when trying to pursue an FAI answer to the softupdate question is this: FAI sets up our machines to work largely independent of any further FAI actions. We set up each machine with a solid enough configuration that package updates could take place without the helper scripts used in FAI. All that needs to be done is run the "apt-get update" command, the "apt-get dselect-upgrade" command, and loop on the "apt-get install -f" and "dpkg --configure -a" commands until everything exits with a "0" or until a loop max is reached. (We don't need machines to perpetually try to upgrade when there are broken packages preventing it from happening.) How will we push out new software selections or purge old ones? dpkg has the ability to set package installation instructions with the command-line option "--set-selections". I think it's time we push out simple files to set package selections and run "apt-get dselect-upgrade -y". So, here we go. Time to create our own package. We'll call it softupdate and include in the in-house utils package. Time to make it a realization rather than a rant. We'll continue to use FAI for the initial install, and in my spare time (yeah right), I'll help to convert some of the FAI subroutine functions into actual shell scripts. Time to get back to the grind. ^chewie