AutoUpdate

[ General | Quick Start Guide | Download and Installation | Configuration | FAQ ]

Note: Autoupdate is no longer maintained. These pages remain here only for historic reasons.

AutoUpdate is a Perl script which performs a task similar to RedHat's up2date or autorpm. It can be used to automatically download and upgrade rpms from different (s)ftp or http(s) sites. Moreover, it can also be used to keep a server with a customized (RedHat) distribution plus all clients up to date. I have tried to write it in such a way that it is not RedHat specific and hence it should work with any other rpm based distribution as well.

Main features/drawbacks:

The current version is autoupdate-5.5.5-2 and can obtained from the download page. For the impatient user there is also a Quick Start Guide (which includes installation instructions).

How does it work and what can it do?

There are five independent modes, download, get, update/install, merge, and purge. The mode will be determined by the invocation name and or command line options.

Examples:

If everything is set up correctly you can check for updates and apply them using

# autodld
Found no new rpms at ftp.mat.univie.ac.at.
New rpms from ftp.univie.ac.at:
  rsync-2.-13.i386.rpm
Upgrading rpms:
  rsync-2.-13.i386.rpm
Removing updated rpms:
  rsync-2.-13.i386.rpm

Alternatively, if you already have the rpms, you can use

autoupd *.rpm

to upgrade your system. If you use autoins instead, all rpms will be installed even if no older versions are present. This is similar to rpm -F and rpm -U with the two differences that AutoUpdate will select the right rpm (architecture, latest version) and it will try to resolve dependencies. Note that autoupd and autoins will not perform the download part, so unless you already have the rpms in your updates directory, nothing will happen!

Moreover, the command

autoget --url ftp://ftp.redhat.com/pub/redhat/linux/7.2/en/os/i386/RedHat/RPMS zip

will search the given url for an rpm named zip. If found, the rpm will be downloaded and installed. Of course, you can setup *.get config files for all sites you want to search. If you do this you can install the latest version of nedit using

# autoget nedit
New rpms from ftp.univie.ac.at:
  nedit-5.5.5-20.i386.rpm
  lesstif-0.92.32-6.i386.rpm
Downloaded total of 2 rpms.
Installing rpms:
  lesstif-0.92.32-6.i386.rpm (new)
  nedit-5.5.5-20.i386.rpm
Installed total of 2 rpms.
Removing updated rpms:
  lesstif-0.92.32-6.i386.rpm
  nedit-5.5.5-20.i386.rpm

Note that it automagically found out that nedit requires lesstif and handled all dependencies for you. It can even read the requested rpms from a RedHat-type comps file. So if you forgot to choose Software Development you can just say

# autoget "@Software Development"

and it will install all rpms from this section for you. Similarly, if you forgot to select KDE, just say autoget "@KDE". To install all rpms from a comps file which are selected by default, use "@+" and to install everything from the comps file use "@++".

Finally, here is a more complicated task: Upgrading a RedHat 7.2 system to KDE3

# autodld --dldall --url ftp://keen/pub/rpm/kde3/
New rpms from keen:
  Xconfigurator-4.10.7-1.i386.rpm
  ark-3.0.0-1.i386.rpm
  arts-7:1.0.0-1.i386.rpm
  arts-devel-7:1.0.0-1.i386.rpm
  cups-libs-1.1.14-10.i386.rpm
  .
  .
  .
  noatun-3.0.0-1.i386.rpm
  qt-3.0.3-5.i386.rpm
  qt-MySQL-3.0.3-5.i386.rpm
  qt-ODBC-3.0.3-5.i386.rpm
  qt-PostgreSQL-3.0.3-5.i386.rpm
  qt2-2.3.1-2.i386.rpm
  qt2-Xt-2.3.1-2.i386.rpm
  qt2-designer-2.3.1-2.i386.rpm
  qt2-devel-2.3.1-2.i386.rpm
  qt2-static-2.3.1-2.i386.rpm
  cups-1.1.14-10.i386.rpm
Downloaded total of 100 rpms.
Upgrading rpms:
  hwdata-0.9-1.noarch.rpm (new)
  Xconfigurator-4.10.7-1.i386.rpm
  cups-libs-1.1.14-10.i386.rpm (new)
  qt2-2.3.1-2.i386.rpm (new)
  kde2-compat-2.2.5.5.5-2.i386.rpm (new)
  libusb-0.1.5-2.i386.rpm (new)
  arts-1.0.0-1.i386.rpm
  kdegames-3.0.0-1.i386.rpm
  kdebase-3.0.0-2.i386.rpm
  kdelibs-3.0.0-4.i386.rpm
  qt-3.0.3-5.i386.rpm
  .
  .
  .
  kuickshow-3.0.0-3.i386.rpm
  kxmlrpcd-3.0.0-1.i386.rpm
  libxslt-1.0.15-1.i386.rpm
Upgraded total of 52 rpms.

Note that for this to work I had to rename arts-1.0.0-1.i386.rpm to arts-7:1.0.0-1.i386.rpm such that AutoUpdate can read off the EPOCH tag (7 in this case) from the file name, since there is no way to tell from the filename that arts-2.2.2-4.i386.rpm is older than arts-1.0.0-1.i386.rpm. This is not necessary if you download arts by hand or if you use an repositry with an autoinfo file.

License

Copyright (C) 2000-2003 Gerald Teschl

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Alternatively you can also redistribute it under the terms of the Perl Artistic License.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Please see the included file LICENSE for a copy of the GNU General Public License. If this file is missing, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Credits

I'd like to thank the following people for suggestions/bug reports/patches: Flemming Christensen, Jonathan Hunter, Pekka Savola, Andrey Sukhorukov, Brendan Byrd/SineSwiper, Torsten Lehmann, Wil Reilly Cooley, Adam (StatiC) Gibson, Stefan Furtmayr, Dag Wieers, Allan Frank, Dave Alden, Richard Bos, JP Vossen, Jim Wray, Omer van der Horst Jansen, Graeme Wilford, Bertil Askelid, Harry F Phillips, Benjamin Johnson, Gustav Schaffter, Chris Bailiff, Damjan Lango, Michel de Groot, Chuck Moss, Josko Plazonic, Paul Wagland, Neal D. Becker, David J. Morse, David Rees, Mike Radomski, Matthias Andree, Ramiro Morales, Stefan, Alexander (Leo) Bergolth, Eric B. Decker, Lars Nummedal, Woody McLendon, Bert de Bruijn, Greg Kurtzer, Michael Redinger, Jeff Frost, Chris Paul, Andrew Jorgensen, Rainer Lay, Taras, Jennifer Cranfill, Alexandre Aufrere, Akop Pogosian, Jason Brechin, Adam Thomas, Jürgen Vigna, Remy Chibois, George Georgalis, Eric-Olivier Lamey, Paul Holcomb, Jorge Garcia, Simon Ryan, Stephen McCants, Drew Einhorn, Kent Tan, David L. Crow, John Campbell, Jim Apedaile, Guoching Su, Reinhard Zitzmann, Leif Olson, Kevin Brooks, George Manoilov, Andrew.J.Kay, Russell Steffen, Florian Wisser, Sebastien Prud'homme, Jack Cheng, Rudi Chiarito, Ted Buchanan, Steve Nielsen, Nicolas Costes, Josh Hildebrand, Al Amin Khaef, Kyriakos Ginis, Satoshi Hinago, Patrick Van Gilst, Li Guangcheng, Greg Hayes, Alex Bronstein.
[ General | Quick Start Guide | Download and Installation | Configuration | FAQ ]