AutoUpdate

[ General | Download and Installation | Configuration | FAQ ]

This section describes some sample configurations. For a list of all available options please refer to the man page or use autoupd --help to get a list of all command line options.

Standalone configuration

On a single machine I recommend the following configuration files
# /etc/autoupdate.d/autoupdate.conf
Verbose=1
Quiet=0
Warnings=1
RPMNameWarnings=1
DoUpdate=1
DoInstall=0
DoKernel=0
DoInitRD=1
DoBoot=1
DoDld=1
DoMerge=0
DoPurge=0
CleanUp=1
CleanUpKernel=1
#BootManager=lilo
BootAddAsNew=0
KernelExt=smp,enterprise,bigmem,debug,BOOT
Repackage=0
#QueryHeaders=1
#QueryDatabase=1
CheckSig=0
CheckGPG=0
Resolve=1
DldUseDB=1
BestMatch=1
RemoveBad=1
Recursive=0
UseLWP=0
#LWPProtocols=http,https
DoLog=1
#LogFile=
#PostUpdateScript=/sbin/SuSEconfig
#PostDldScript=
DefaultUser=anonymous
DefaultPass=`echo autoupdate@`hostname -f``
DistVersion=`/etc/autoupdate.d/distversion.sh`
ShellEscapes=0
UpdateDir=/var/spool/autoupdate
RPMDir=
DldMatch=0
MergeMatch=0
#Exclude=^k_
#Include=
and
# /etc/autoupdate.d/redhat.dld
Host=ftp.redhat.com
DldAll=1
FTPRetry=2
FTPWait=10
DldRecursive=0
Passive=1
Dir=/pub/redhat/linux/updates/#DistVersion#/en/os//
Just type autodld. This will download all new updates from ftp.redhat.com and upgrade your system. The double slash at the end of the ftp directory will make AutoUpdate check all sub directories corresponding to architectures suitable for your system (e.g., noarch, i386, i586 on a Pentium PC). Moreover, linking autodld to /etc/cron.daily will check for updates every day and you (root) will get a list of all rpms which have been upgraded via email.

Some remarks: CleanUp=1 will remove all rpms which have been upgraded. If you set it to CleanUp=0 and DoPurge=1 the latest version of each rpm will be kept. BestMatch=1 will ensure that only the rpm which matches your system best is fetched, that is, if you run it on an i686 it will only download the i686 kernel and not the i386 one. RemoveBad=1 will remove bad rpms (e.g., those from an incomplete download) before downloading any new ones. In addition, you can also use Exclude, Include patterns to control which packages should be considered during upgrade. Kernel packages will be handled separately, in particular, no exclude patterns are needed. Note, however, that excluded packages will still be downloaded (unless you use DldMatch=1), such that you know they are there. (Of course you can also set up patterns for each ftp site.)

Client/Server configuration

In addition, it can be used to keep an entire site up to date. Here is my setup. I have a (customized) RedHat distributions on my server in /usr/src/redhat-7.{0,1} and I keep the updates in /usr/src/redhat-7.{0,1}/updates. Hence my configuration file looks like
# /etc/autoupdate.d/autoupdate.conf
Verbose=0
Quiet=0
Warnings=1
DoUpdate=0
DoInstall=0
DoKernel=0
DoInitRD=1
DoBoot=1
DoDld=1
DoMerge=0
DoPurge=0
CleanUp=0
CleanUpKernel=1
BootAddAsNew=0
KernelExt=smp,enterprise
CheckSig=1
CheckGPG=0
Resolve=1
BestMatch=0
RemoveBad=1
Recursive=0
#PostUpdateScript=
#PostDldScript=
DefaultUser=anonymous
DefaultPass=`echo autoupdate@`hostname -f``
DistVersion=`cut -d" " -f5 /etc/redhat-release`
ShellEscapes=0
UpdateDir=/usr/src/redhat-#DistVersion#/updates
InstallDir=/usr/src/redhat-#DistVersion#/newrpms
RPMDir=/usr/src/redhat-#DistVersion#/RedHat/RPMS
DldMatch=0
MergeMatch=0
In addition, I use DldAll=1 for the RedHat updates and DldAll=0 for all others (e.g, PowerTools).

From /etc/cron.daily I run

#!/bin/sh
autodld --noverbose --distversion 7.1
autodld --noverbose --distversion 7.2
on the server and
#!/bin/sh
# Sleep some random time between 0 and 2 hours
sleep $((RANDOM % 7200))
export HOME=/root
RHDIR=/auto.mnt/redhat

# Upgrade rpms 
autoupd --noverbose --kernel --updatedir $RHDIR/updates --rpmdir $RHDIR/RedHat/RPMS

# Install new rpms
autoins --noverbose --updatedir $RHDIR/newrpms --rpmdir $RHDIR/RedHat/RPMS
on the clients, where /auto.mnt/redhat is the /usr/src/redhat-7.{1,2} directory (auto)mounted via nfs from the server. New rpms can be installed on all clients by copying them to the newrpms directory.

Finally, you can use the --merge option to replace all rpms in your distribution with the updated ones. Similarly, --purge will remove old versions from the updates directory.


[ General | Download and Installation | Configuration FAQ ]