RPM's

Bill Mullen moonmullen at attbi.com
Fri Apr 25 18:46:30 EDT 2003


On Fri, 25 Apr 2003, Jason Stephenson wrote:

> Derek Martin wrote:
> > In the case of Red Hat, I think the best thing to do is simply go to
> > their FTP site (or a fast mirror), and download all the files in the
> > updates tree, and apply them using something like:
> [Snippage]
> > For Red Hat 7.2, the URL for the updates tree (for intel systems) is:
> > 
> >   ftp://ftp.redhat.com/pub/redhat/linux/updates/7.2/en/os/i386
> > 
> > Note that the last 4 directories fit the pattern:
> > 
> >   <RH release>/<language>/os/<architecture>
> > 
> 
> I get them like this:
> 
> wget -m ftp://updates.redhat.com/<release>/en/os/
> 
> This gets all the latest updates for a particular release for all 
> architectures. It takes a little longer to download and a bit more disk 
> space to store, but you've got everything.
> 
> For the 7.2 release it would look like:
> 
> wget -m ftp://updates.redhat.com/7.2/en/os/

Though it won't help the OP any, I just can't resist chiming in here and 
contrasting my update method with the ones that have been offered for RH.

I first type (as root):

urpmi.update --wget -a

This updates, without further input from me, my local database of what is
available on all of the various non-removable RPM sources that I have
previously defined (which can be local dirs, nfs mounts, and/or http- or
ftp-accessed mirrors), including the list of dependencies for each RPM.

(I use the --wget option because it defaults to curl, which I detest.) :)

Once this completes (a minute or so), I then type:

urpmi --wget --auto-select

This takes a quick glance at the local DB of installed RPMs, determines 
which ones updated versions are now available for, figures out exactly 
what it needs to fetch - and from where - to update them all without *any* 
dependency problems (including such situations as when foo-1.1 has been 
superseded by foo-1.2, which now depends on bar-0.9.8, which is on the 
install CDs/"main" distro mirrors but is one which I had not previously 
installed, because foo-1.1 didn't need it), and presents me with a list of 
what it is planning to retrieve and install for my approval. I type:

y

And it gets them and installs them. Just like that. And, it may be worth 
noting, without needing to have any of my system's own configuration info 
anywhere other than in the same local DB that the "rpm" command uses.

Oh, yeah, and if I were looking for which RPM contains "libc.so.6"?

moon at tvbox:~$ urpmf libc.so.6
anonftp:/var/ftp/lib/libc.so.6
glibc:/lib/i686/libc.so.6
glibc:/lib/libc.so.6
glibc_lsb:/lib/lsb/libc.so.6
glibc:/lib/i686/libc.so.6
glibc:/lib/libc.so.6
moon at tvbox:~$ 

Note that "glibc" is mentioned twice, as both an updated and an original
RPM are available for it; this search has included both installed *and*
uninstalled-but-available-from-my-sources RPMs, of course. :)

One can also do some nifty things with constructs such as:

moon at tvbox:~$ urpmf --provides libc.so.6 | grep 2.2.5
glibc:provides:libc.so.6(GLIBC_2.2.5)
glibc_lsb:provides:libc.so.6(GLIBC_2.2.5)
glibc:provides:libc.so.6(GLIBC_2.2.5)
moon at tvbox:~$

A brief one-page rundown of the apps in the urpmi system, with examples:

http://myweb.tiscali.co.uk/jwrobinson/docs/urpmi-howto/tools.html

For any other Mandrake users here on the list, here is a page that will 
help you to configure your sources for urpmi with a minimum of bother:

http://plf.zarb.org/~nanardon

These users should note that by adding a source to the urpmi database, you 
have added it to the same database that its GUI frontend (rpmdrake, a.k.a. 
"Software Manager", a component part of the Mandrake Control Center) uses.

The urpmi system is my personal favorite of the various config tools that 
are included in Mandrake distros, and IMHO gives Debian's apt-get a real 
run for its money in the convenience department.

-- 
Bill Mullen   moon at lunarhub.com   MA, USA   RLU #270075   MDK 8.1 & 9.0 
"Electric communication will never be a substitute for the face of
someone who with their soul encourages another person to be brave and
true." -- Charles Dickens



More information about the gnhlug-discuss mailing list