Please upgrade to a recent version of rpmfind before sending bug report mails to the author, thank you.
Note: KAJIKI Yoshihiro maintain a Japanese version of this page
Basically, rpmfind is a program that will find RPM files on rufus for you.
For example, rpmfind gimp will tell you what packages are needed to install Gimp on your machine, where to find them, and how much space it will take on your hard drive (so you can also estimate the download time), and can fetch the required files for you.
Rpmfind can also be used to query the RPM database for existing packages using a keyword or a regular expression.
It can also operate in a different "upgrade" mode intended to maintain machines up to date or to upgrade them to a new version of the distribution. Check the separate autoupgrade page for informations on this mode of operations.
Rpmfind can be used in various modes, here is a description of the standard ways of using it
This mode is used to find packages related to a given topic defined by a
keyword of a regex. The syntax is
rpmfind --apropos regex and
will query the full set of RPM indexed on rpmfind.net for package name and
For example I have heard about a Borland like programming environment, let' learn about it:
$ rpmfind --apropos borland 1: ftp://rpmfind.net/linux/contrib/i386/rhide-1.3-1.i386.rpm rhide : Rhide is a very nice IDE exactly like Borland's $
In that case the query found only one package, all the package containing the substring in their name or summary will be shown.
This is the "default" mode of rpmfind where you know the name of the package you want to install and rpmfind will locate the "best" package accordingly to your installed distribution, and show also all the other packages needed to solve the dependancies needed.
For example let's install xbill game on the machine:
$ rpmfind xbill Arch : i586, Os : Linux Default distribution : Red Hat Software(Hurricane) owning 249 of 338 installed packages Get http://rpmfind.net//linux/RDF/resources/xbill.rdf Get http://rpmfind.net//linux/RDF/redhat/5.0/i386/xbill-2.0-2.i386.rdf Installing xbill will requires 183 KBytes ### To Transfer: ftp://rpmfind.net/linux/redhat/redhat-5.0/i386/RedHat/RPMS/xbill-2.0-2.i386.rpm Do you want to download these files to /tmp [Y/n/a] ? : y saving to /tmp/xbill-2.0-2.i386.rpm $
There is only one package needed to install the game and it has been saved
in /tmp. Note that rpmfind can be run by any users, it doesn'
requires root access. Installing the package, however require root privileges
rpm -i /tmp/xbill-2.0-2.i386.rpm").
In the "default" mode, rpmfind doesn't try to replace existing packages, so a specific "upgrade" mode exists to check for replacement of older packages. It also walks down the dependency lists and also suggest upgrades for them:
$ rpmfind -q --upgrade balsa [search for approx 30 seconds ... 28.8 Kbps PPP connection] Installing balsa will requires 9574 KBytes ### To Transfer: ftp://rpmfind.net/linux/freshmeat/libpng/libpng-1.0.1-1.i386.rpm ftp://rpmfind.net/linux/redhat/redhat-5.0/i386/RedHat/RPMS/ImageMagick-3.9.1-1.i386.rpm ftp://rpmfind.net/linux/redhat-labs/gnome/support/RPMS/giflib-3.0-2.i386.rpm ftp://rpmfind.net/linux/contrib/hurricane/i386/giflib-3.0-4.i386.rpm ftp://rpmfind.net/linux/redhat/redhat-5.0/i386/RedHat/RPMS/libgr-progs-2.0.13-4.i386.rpm ftp://rpmfind.net/linux/redhat-labs/gnome/devel/1998052417/RPMS/imlib-1.4-1998052414.i386.rpm ftp://rpmfind.net/linux/redhat-labs/gnome/devel/1998052417/RPMS/glib-1.1.0-1998052414.i386.rpm ftp://rpmfind.net/linux/redhat-labs/gnome/devel/1998052417/RPMS/gtk+-1.1.0-1998052414.i386.rpm ftp://rpmfind.net/linux/redhat-labs/gnome/devel/1998052417/RPMS/gnome-libs-0.13-1998052414.i386.rpm ftp://rpmfind.net/linux/redhat-labs/gnome/devel/1998052417/RPMS/balsa-0.2.0-1998052416.i386.rpm Do you want to download these files to /tmp [Y/n/a] ? : n $
-q flag is used to reduce the verbosity of rpmfind.
The last rpmfind mode is "latest" performing the search to the most up-to-date package, in that case rpmfind will not give higher priority to package from the installed distribution or vendor, but will bring back the most recent packages:
$ rpmfind -$ rpmfind -q --latest knews Installing knews will require 668 KBytes ### To Transfer: ftp://rpmfind.net/linux/redhat/redhat-5.0/i386/RedHat/RPMS/libpng-0.96-1.i386.rpm ftp://rpmfind.net/linux/contrib/hurricane/i386/knews-1.0b.0-1.i386.rpm Do you want to download these files to /tmp [Y/n/a] ? : y Download libpng-0.96-1.i386.rpm [Y/n/a] ? :y transfering ftp://rpmfind.net/linux/redhat/redhat-5.0/i386/RedHat/RPMS/libpng-0.96-1.i386.rpm saving to /tmp/libpng-0.96-1.i386.rpm Download knews-1.0b.0-1.i386.rpm [Y/n/a] ? :y transfering ftp://rpmfind.net/linux/contrib/hurricane/i386/knews-1.0b.0-1.i386.rpm saving to /tmp/knews-1.0b.0-1.i386.rpm $
This option is somewhat more dangerous since it may introduce significant changes from the "standard distribution" you have installed and this may cause problems when upgrading your base system when the new release is issued.
The simplest way to instruct rpmfind to fetch packages from a given distribution is to add the --dist option to the command line like in the following:
$ rpmfind --dist redhat gpg
it is also possible to use the no_distrib flag in the [packages] section:
Rpmfind creates and maintains a per-user configuration file, saved in $HOME/.rpmfind .
Here is some of the options, their meaning and default values:
this is maintained by rpmfind and is used for detection of upgrades
which RDF server to contact, currently rufus is the main one bu new mirrors are being maintained
prefix where the RPM local database is to be found, this can be /usr/local if RPM is not the native packaging format of your system
where to save the packages loaded from the net, /tmp is the default value.
URI to the HTTP proxy if your are using one
URI to the FTP proxy if you are using one
setup the verbosity level, 1 is the default, 0 is quiet, >1 is annoying :-)
default mode for queries, default to "lookup", one can also select "upgrade" or "latest" if you like living on the bleeding edge. This is overridable via the command line
The full list of options is listed in the config file itself, and a specific comment related to it's use is provided there.
I suggest using the latest versions (at least anything >= 1.5)
In the later case, it's a good idea to switch the paranoid option on in the configuration file, configure gpg on your system, and add your distribution trusted key to the root gpg keyring (gpg --import with the distro key one one can find at the top of a CD-Rom is a good way to do it).
Rpm2html exports the information about the packages available in RDF schema on rpmfind.net. Thus, a simple descriptions of all the RPM packages and associated resources available are exported in small files.
When rpmfind is asked for a resource it first asks the local RPM base if it's available. If it's not, it will request the associated RDF file on rufus. The content is parsed to find descriptions of the various packages providing the resources (distribution, vendor, version, date, etc...). Based on that, rpmfind sorts the various packages for suitability. Then it picks the first one and fetches more complete information like the dependencies required by these packages. Based on that, it then verifies that all dependencies needed by this package are available, and recursively verifies that all these resources are available (if needed) by fetching more packages from the net.
At the end, rpmfind shows the list of packages to fetch and their total size on disk.
If rpmfind noticed that one of the package needs a resource which is not available, or an upgrade of the libc, it will discard the package and take the second in the list, etc. (this is a highly recursive process).
The place to look for latest version is ftp://rpmfind.net/pub/rpmfind it is also part of RedHat like distributions.
A lot of things:
Want to try rpmfind now ? Fetch it !
[ Home | News | Try it ! | Docs | Help | Mirrors | Download ]
[ Rpmfind | | FAQ | History | License | Archive | Feedback | Links ]Daniel Veillard
$Id: rpmfind.html,v 1.11 2001/08/11 10:27:24 veillard Exp $