rpmfind : the autoupgrade mode

What is it ?

rpmfind autoupgrade allow to keep a machine up to date based on a number of predefined update sources. It can also be used to upgrade to a new version of the distribution (currently only tested on Red Hat Linux and with rpmfind >= 1.8.0).

How does it work:

The autoupgrade mode takes as input one or multiple pool of package, in practice directories (file based, FTP or HTTP), scan then to look for packages susceptible to provide upgrades to locally installed ones. Then it will fetch them one by one trying to solve the dependancies. It then progressively update the machine with new packages from the sources provided.

Guarantees:

From a legal point of view, there is none. However the rpmfind autoupgrade mode provides the following guarantees to make people feel safe about using it:

I have run rpmfind --autoupgrade to maintain a set of servers with redhat updates for years. I have tried a number of upgrades of Red Hat distributions recently (6.2 -> 7.1, 7.0->7.2, 6.2->7.2 beta, etc.) I even upgraded the rpmfind.net server from 6.2 to 7.1, however YMMV !

Metadata sources:

When upgrading a package raise a dependency requirement problem, rpmfind will use the following to try to find the right package for the update:

This is usually sufficient to find the right packages.

Running it:

Assuming you have a machine you want to upgrade to 7.1 (say mounted vian NFS) run the following:

rpmfind --upgradefrom /nfs/redhat/7.1/RedHat/RPMS

You must point it to the directory containing the RPMs. If you are wondering what are the package examined or how are the dependancies solved, run it with the extra -v (or 2 for really verbose ouput). rpmfind will run lilo or rpm --rebuilddb when updating those packages.

Once done it is a really good idea to also apply the security updates from redhat (again assuming you kept them locally on NFS):

rpmfind --upgradefrom /nfs/redhat/update/7.1

To simplify maintenance, add the two following lines to ~root/.rpmfind (which is created automatically):

autoupgradeURL=/nfs/redhat/7.1/RedHat/RPMS
autoupgradeURL=/nfs/redhat/update/7.1

It is a good idea to install the Red Hat GPG public key from a trusted source like a CD-ROM:

# mount /mnt/cdrom
# gpg --import /mnt/cdrom/RPM-GPG-KEY
gpg: key DB42A60E: public key imported
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: Total number processed: 1
gpg:               imported: 1
#

this will allow rpmfind to check the integrity of the packages.

Adding packages manually:

Suppose you do (like I did) upgrade Red Hat 7.1 to 7.2beta using rpmfind, new packages may not be installed, for example nautilus wasn't installed since it was not present in 7.1. The --install command allows to pick up a new package and its dependancies. The following command actually installed nautilus and all the needed dependancies (bonobo, eel, libsrvg, mozilla, etc ...):

rpmfind --install nautilus --noremotedb --upgradefrom /nfs/redhat/beta/roswell/i386/RedHat/RPMS

When logging in Gnome the next time, nautilus got launched (note however that using the normal upgrader for desktops should be the prefered option).

Caveats:

Useful tips:

[ Home | News | Try it ! | Docs | Help | Mirrors | Download ]

[ Rpmfind | | FAQ | History | License | Archive | Feedback | Links ]

Daniel Veillard

$Id: autoupgrade.html,v 1.2 2001/08/10 12:12:11 veillard Exp $