fou4s − Fast OnlineUpdate for SuSE
[−−config file] −u [−bvq]
fou4s [−−config file] −e [−bdosv] [−−proxyuser] [−−proxypasswd]
fou4s [−−config file] −−auto [−bnosv] [−−proxyuser] [−−proxypasswd]
fou4s [−−config file] −i [−abcdgnorsv] [−−buildtime] [−f file] [−−force] [−−interactive] [−n] [−−nodeps] [−−proxyuser] [−−proxypasswd] [−−acceptpreinstallinfo]
fou4s [−−config file] −l [−osv]
fou4s [−−config file] −−server [−vw] [−−proxyuser] [−−proxypasswd]
fou4s −−all [−d] [−−only [[−f] file(s) ...]]
Fou4s is a replacement for SuSE’s Yast OnlineUpdate (YOU). It uses the same update description files and is therefore a complete, lightweight replacement.
can be specified as "−a −b" or
"−ab". The order of options is not relevant,
except for the −−config option, which
must be the first option, if used. The options
−u and −e or −i may
also be combined. The other tasks usually cannot be
combined. Long names may be abbreviated, as long as they are
not ambigous. (e.g. −−checkd for
Updates the patch descriptions from the server. Only new files are downloaded. Usually you don’t need to run fou4s −u more than once a day. Even if a package is installed from CD, fou4s −e is enough to check for an updated version of the newly installed package.
Install each package without any other packages from the same update description. See −−end for the opposite action.
Prevent fou4s from asking the user to accept pre-install information (e.g. license information for proprietary packages or important information on kernel updates or database updates).
Process all packages, regardless if they are needed for the current installation or not (e.g. no version comparison is done). Use together with −d to download all updates. This option also overrides the behaviour of −−only, to check for installed patches only. This means, that fou4s −−only −−all ethereal can be used to install the (not yet installed) package ethereal on your system. Note: Using −−all disables usage of patch−RPMs.
Like −−all, but doesn’t process updates that are older than already installed packages. This switch allows the user to see all available updates that fit the current system.
Auto−Mode: Works like −ued, plus automatic installation of packages specified at the Auto option in the config file.
Installs a fou4s update cronjob for a server or a workstation. The difference is, that on a server the cronjob is run daily at a specified time (through /etc/cron.d/fou4s). On a workstation, the cronjob is put into the cron.daily directory which is executed every day, even if the computer was not turned on at a specific time. This command can be abbreviated using −−crons or −−cronw (like all other long options).
Evaluates, if new packages should be installed. This requires that package descriptions are already downloaded (with −u).
Install all updates at once - useful to solve dependency problems between updates from different packages.
The export function of fou4s allows the user to fetch updates for machines that have no internet connection. On the machine without internet connection, run something like fou4s −−export home.fou. Then copy the home.fou on your memory stick or floppy and transfer it to a machine with internet connection. On this machine run fou4s −−import home.fou to import the machine data. The next step is to fetch the updates for the machine "home": fou4s −−host home −u −−export home.tar The home.tar contains all updates and can be imported on the home machine afterwards: fou4s −−import home.tar. Then run fou4s normally (e.g. fou4s −−iv).
This is only necessary once for users, who installed via FTP (or changed installation source). Fou4s needs some information about the packages which is not included with the update descriptions. You may also need this if you are not root. Normal users have usually no read permissions to those files. Fou4s will store the package descriptions in its own cache.
Check another host for needed updates. The host can be given as an IP, hostname and optionally with a username (user@host). It is recommended to use ssh−agent or a password−less key to check remote hosts more conveniently. If you know, that the RPM database of the remote host has not changed, you can also use the −−offline option. If −−host is used together with the −−export option, a direct connection is not necessary (−−offline is set automatically in this case).
Download and install required updates. Several options are available to modify this option (e.g. −n or −o).
The import option allows fou4s to read exported packages or configuration data created by the −−export option. It takes either a .fou or a .tar file as argument. If a .fou file is specified, the RPM database data of the other host is imported into the local rpm cache. To download and export all packages for this host, see the −−export option. If a .tar file is specified, its contents are extracted into the local cache directory (e.g.: /var/cache/fou4s/packages/ftp.gwdg.de). The server name (e.g. ftp.gwdg.de) automatically matches the first entry in fou4s.conf. It must be present, but it doesn’t harm if the machine has no network connection at all!
Lists all available updates. Most filtering and display options (e.g. −o, −s, −v) are also honored.
Select an ftp server for updates from /etc/suseservers. The selected ftp server is written into the config file (fou4s.conf).
Shows a list of files that are deleted but still in use. After an update, this list is shown automatically, but if you don’t know whether you restarted all processes, just use −−checkdeleted to be sure.
Cleans the fou4s cache. This is normally only necessary if you manually moved or renamed patch descriptions. In all other cases, fou4s should detect changes and update the cache automatically. This option can be combined with −−host, to clean the cache of another host that is checked by fou4s.
Fix permissions of /var/adm/YaST/InstSrcManager/IS_CACHE_0x00000001/DATA/descr/packages. This file contains the architecture of all packages and is necessary for downloading of files for non-root users. The fixed permissions allow read access for members of group fou4s, although world-readable permissions also wouldn’t do any harm (a non-privileged user can still download the file using −−getpackagedescriptions).
Install every package on its own after download. Normally, packages are installed at once after the files of one update have been downloaded. This can minimize dependency problems between packages. In fact, fou4s does not handle dependencies itself at all, so you are on your own here.
Use the specified architecture x (e.g. i386, axp), to download patches for other architectures. It can also be used, if fou4s detects the arch wrong, but you should better notify the author :)
Run fou4s−benchmark and uses the fastest server for download. The benchmark takes some time, therefore it is only advisable for really large downloads. The benchmark takes the entries from /etc/suseservers and tries them all. To make benchmark use http servers, you must edit /etc/suseservers yourself.
Compare buildtime of packages instead of version numbers. This is an alternate method, if update descriptions or the version comparison mechanism of fou4s are broken. The rpm command will do another version comparison when the update is really performed, which prevents downgrades, except if −−force is given.
Do not run SuSEconfig after an update (not recommended). SuSEconfig does many useful things, like running ldconfig. Sooner or later, YaST would run SuSEconfig anyway, so don’t try to skip it ;−)
This option enables the download of fou4s update patch descriptions from the fou4s website. Fou4s updates are signed with a special key, that is imported during installation (RPM only). This key is only used for fou4s updates. To import the key manually, do one the following:
On RPM v3
systems (up to SuSE Linux 8.2):
gpg −−keyserver wwwkeys.ch.pgp.net −−recv−keys AFB66D7C
gpg −−import /usr/share/doc/packages/fou4s/fou4s_public.gpg
On systems with
RPM v4 (e.g. SuSE 9.0 and higher) you need to run
rpm −−import /usr/share/doc/packages/fou4s/fou4s_public.gpg
Use "file" as configuration file. This option must be the first one!
Check packages and download RPMs. No installation is performed. This option is only valid with −e and −−all.
Exclude specific series (a1, kde*) or patch description file names (KDE*, you−*) from processing. Wildcards (*, ?) work here. Seperate more than one entry with comma (",") (no blanks allowed!)
Try to install an available update, even if the given package is not yet installed on the system. Use −l to list available updates. To install more than one additional RPM, give them as additional arguments on the commandline. In fact, −f isn’t needed at all, you just give the RPMs as arguments.
Force RPM updates (rpm −−force). This is DANGEROUS, use with care.
Skip GPG signature checks. This is not recommended, but necessary for some third-party packages (e.g. from packman.links2linux.de).
Show a short help screen.
Show a long help screen.
Interactive mode. The user is asked before a package is downloaded or installed. When interactive mode is on, there are several choices: Perform download/update ([Y]es/[N]o/[S]kip forever/show [D]escription)? [n] In addition to y/n/s and d, the keys V/v are recognized to increase/decrease verbosity of fou4s.
Assume a light background color. Fou4s will change text that is usually bright to a dark color and vice versa.
Choose a language for information gathered from the update information file. This does not affect any messages of fou4s and external programs called by fou4s. These are by default english. Possible options are german and french. Please note that the given language has to be lower case.
Do not attempt to download any RPM files (only valid with −i and −−auto).
Do not use the update description cache. This is a massive decrease in performance, but may be useful in case of problems. Use twice to disable the second level cache as well.
Do not check for deleted files that are still in use.
Disable colored output. This is useful for piping to external programs that don’t understand escape sequences. Please note, that you can see colored output with less, if you use the −R option of less. See fou4s.conf(5) for more information about colored output.
Don’t be YOU compatible in some aspects. At the moment this only means, that only installed packages will be updated. According to YOU docs, all patches of a patch description file shall be installed, if at least one of the packages contained is installed, or the UpdateOnlyInstalled flag is set to false (default). SuSE forgot to insert UpdateOnlyInstalled=true in some patch descriptions, so the −−nocompatible option can be used in this case.
Disable usage of delta RPMs (man applydeltarpm). Delta RPMs are available on SuSE 9.2 and later
Passes the −−nodeps option to the rpm command. This is dangerous and NOT RECOMMENDED.
Disable using patch RPMs on SuSE 8.1 and higher.
Don’t use generated patch descriptions. This patch descriptions end with −G instead of a number and are created when using rsync servers with third party packages.
Skip optional packages. Other packages will be processed normally.
This option tells fou4s, that it should not contact the host given as argument to −−host. In that case, fou4s will not try to update the RPM database cache and use the old version.
Only show/process packages older than the given number of days (x). Useful if you want to deploy updates automatically but not immediately. corresponds with OlderThan option in the config file.
Only process the given packages (wildcards allowed). See option −f for information, how to pass package names. This option is limited to updates only. If you want to install a package that is not yet on the system, but available via YOU or from a third-party server, use −−only in conjunction with −−all.
Use "x" as product name. This is only used for SuSE business products. The given name is used as directory name on the FTP server.
Use "x" as HTTP proxy
server. The proxy must be given in this format:
http://host:port/ (e.g. http://proxy.provider.net:8080/). The slash as last character is absolutely necessary!!
Use "digest" authentication with proxies (only supported by curl, fou4s will automatically switch to curl if this option is used).
Use "user" as HTTP proxy username.
Use "password" as HTTP proxy password.
Quiet mode − suppresses some messages (especially for fou4s −u). If both quiet and verbose options are given, the last argument wins and all others are reset.
Remove downloaded packages after successful update. If updating fails, no files are removed. Only files of the current session are removed. If you want to delete RPM files of previous updates, remove them manually from /var/cache/fou4s/packages/ftp.gwdg.de/i386/update/9.1/rpm.
Fou4s starts itself with GID fou4s and a modified umask to allow members of group fou4s to modify the update tree. If this option is given as first parameter (even before −−config), no change to the umask and GID fou4s is performed. This is usually necessary when debugging is done (bash −vx ...), because the bash options cannot be forwarded to the subprocess. You can also abbreviate this option with −−ri.
Process security updates only.
Safe mode disables install triggers in patch descriptions.
Fetch only source RPM’s and not binary packages for the given rpms. This option overwrites the setting of SourceRpms from fou4s.conf.
Use "username" as authentication user for your SuSE business product. Not required for normal SuSE distros (Professional/Personal edition). Must be used together with −−susepasswd.
Use "password" as authentication password for your SuSE business product. Not required for normal SuSE distros (Professional/Personal edition). Must be used together with −−suseuser.
Override autodetected suseversion. Mostly used for business products to override (wrong) autodetected values.
Use curl instead of wget. Curl is necessary for proxies with digest authentication and can help to work around wget problems.
Use the ’directory.X’ file from the server to enumerate the update description files. This is necessary if the server doesn’t give a directory listing of the patches directory.
Update /etc/suseservers from http://www.suse.com. This is only valid with the −−server option.
Verbose mode. Use twice for even more messages. If both quiet and verbose options are given, the last one wins.
The author uses
fou4s in one of the following ways:
First time/from time to time
On machines where fou4s is run the first time, or where I don’t want to do automatic download/notification of updates, I do fou4s −u to download the descriptions of available updates. Then fou4s −e to check, which updates need to be installed. If there is enough time/bandwidth fou4s −i downloads and installs all necessary updates. I also use fou4s −is to download only security updates or fou4s −i −−interactive to select specific updates manually.
Automatic with email notification
This is the normal way. Run fou4s −−cronserver or fou4s −−cronworkstation. The server or workstation option depends on the typical usage of your computer: If it runs 24/7, use −−cronserver, and fou4s will run at a fixed time every day. On workstations, the cronjob is put into /etc/cron.daily. Fou4s will check for updates every day and send a mail to root, if something is found. The default configuration (−−auto −−checkfou4s) automatically downloads updates, installs packages from the Auto= list from fou4s.conf and checks for new versions of fou4s. fou4s can also be used to update several machines from one update directory, if they have the same SuSE version. Let one machine get the update descriptions with -u and use examination mode (−e) for the others. The package directory has to be specified in the config file.
All long options can be abbreviated, as long as they are not ambigous (e.g. −−int instead of −−interactive)
descriptions for SuSE packages and fou4s:
fou4s −u −−checkfou4s # This is only necessary once a day or at least once a week.
necessary updates and show update information:
output description of fou4s −e
XFree86−libs 4.3.0−42 (4.3.0−15 ) [ok] security 646kb
XFree86−server 4.3.0−63 (4.3.0−15 ) [d?] optional 989kb
attr 2.4.0−14 (2.4.0−8 ) [dl] recommended 10kb
This means, that 3 patches have been found. The new version is in the first column, the old one in the second. The first package has already been downloaded (ok), the second is partially downloaded (d?) and the last one has to be downloaded (dl).
install necessary security updates and show update
server list and select ftp server (stored in config
fou4s −−server −w
cronjob (no download of new packages)
fou4s −−auto −n
packages that have been downloaded by the
all updates plus a specific rpm, that is not installed
yet (this RPM must be available as update. Use the −l
option to find out). If −f is specified as the last
option, any number of RPMs can be installed.
fou4s −i −f vnc.rpm
old packages and install some new. This is useful if you
are using the ’packman’ update server and want
to install only some packages (which are already available
in an older version). For example, you have default MPlayer
without libdvdcss and want to update it via fou4s/packman.
There is no old version of libdvdcss installed, so fou4s
won’t show that it is available. The following will
fou4s −i −−all −−only MPlayer libdvdcss2
The −−all option allows fou4s to install libdvdcss2, which is not installed yet. With −−only, no other updates will be installed (e.g. other packman updates). To get more information about packman, see fou4s.conf(5).
fou4s −i −−interactive
The environment variables ftp_proxy and http_proxy are used by wget to download patch descriptions and updates.
If one of these files exists, the latter is used as config file. See fou4s.conf(5) /var/log/fou4s.log
There must be enough harddisk space to perform the updates. fou4s does not do harddisk space checking (yet)!
Bugs in the current version will be announced on the fou4s website http://fou4s.gaugusch.at/. I won’t immediately release a new version if a bug is found. If you really need a fix, then contact me and I’ll tell you how to fix, if it is not described on the homepage. This will prevent release floods. Some bugs will only be fixed in beta versions, available at http://fou4s.gaugusch.at/beta/.