On Wed, 21 Mar 2007 13:05:28 -0400
Neil Joseph Schelly <[EMAIL PROTECTED]> wrote:

> On Wednesday 21 March 2007 12:06 pm, Steven W. Orr wrote:
> > I need to see the list of files in an uninstalled package. The rpm equiv
> > would be
> >
> > rpm -qpl foo.rpm
> >
> > Anyone know how to do this? Is there anything?
> >
> > TIA
> 
> Install apt-file, which will build a searchable index of all files in the APT 
> repositories.  apt-file update will update the cache.  apt-file search 
> filename will tell you all packages that have that filename.

Interesting, as was Paul's post on the (very) many apt-related tools that are 
available. Both of them serve to reinforce my appreciation, as a devotee of an 
RPM-based distro, for the superb adjuncts to rpm that Mandr{ake,iva} has 
developed, collectively known as "the urpm* apps".

They all utilize a local cache of the metadata from all of the available 
packages in one's configured repositories, similar to the one described above. 
One major difference, though, is that they are also all installed by default on 
every MDK/V system, and together they comprise the backend for the distro's GUI 
package management tool, rpmdrake.[1]

To do what is asked for here on a MDK/V system, and without ever having to 
actually fetch the RPM in question, is as easy as:

urpmq -l foo

To see which as-yet-uninstalled packages, if any, foo depends upon:

urpmq -d -m foo

To then fetch and install it, along with any needed dependencies:

sudo urpmi foo

To see the info on any available package, a la "rpm -qi":

urpmq -i foo

To list all available RPMs whose basenames contain the string "foo":

urpmq -y foo

To update the local cache, and then fetch and install all the available updates 
(if there are any, and only after asking for confirmation prior to commencing 
said install):

sudo urpmi.update -a && sudo urpmi --auto-select

Did your compile just soil the sheets on you because it couldn't find 
"libfoo.h", whatever on earth that might be? Piece o' cake:

urpmf libfoo.h

This will return the basenames of any and all available RPMs which have the 
string "libfoo.h" as any part of the name and/or path of an included file or 
symlink, along with the file/path that matched. Very handy, IME.

To add a repository:

sudo urpmi.addmedia mynameforit {http://,ftp://,rsync://}path/to/repodir with 
../relative/path/to/metadatafile.cz

To create a metadata file (named "hdlist.cz", and placed into the $PWD), and in 
doing so turn a shared directory of RPMs into a urpmi-compatible repository:

genhdlist ../relative/path/to/repodir

Since all of the urpm* tools are GPL and are written in Perl, I would think 
that someone with Perl proclivities - *cough* not that there's anything wrong 
with that, of course *cough* ;-) - would find it a less than insurmountable 
task to adapt them for use with their own RPM-based distro of choice ... 
http://wiki.mandriva.com/en/Tools/urpmi is a great place to start, should 
anyone want to learn more about the urpmi system.

[1] One exception is urpmc, which is in contrib. A nifty little number, it does 
a urpmi.update to freshen the cache, determines what a urpmi --auto-select done 
at that point would want to install, then outputs the changelogs of those RPM 
packages. In a cron job, a real admin's friend.

-- 
Bill Mullen  [EMAIL PROTECTED]  MA, USA  RLU #270075  MDV2007.0/MDK9.0
"We've all heard that a million monkeys banging on a million typewriters
will eventually reproduce the entire works of Shakespeare. Now, thanks to the 
Internet, we know this is not true." -- Robert Wilensky
_______________________________________________
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/

Reply via email to