Annotation of rpm2html/rpmfind.html, revision 1.6

1.5       veillard    1: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
                      2:                       "http://www.w3.org/TR/REC-html40/loose.dtd">
1.1       veillard    3: <html>
                      4: <head>
1.5       veillard    5:   <title>rpmfind : the rpm2html client tool</title>
                      6:   <meta http-equiv="Content-Type" content="text/html">
1.1       veillard    7: </head>
1.5       veillard    8: 
1.1       veillard    9: <body bgcolor="#FFFFFF">
1.5       veillard   10: <h1 align="center">rpmfind : the rpm2html client tool</h1>
1.6     ! veillard   11: <ol>
        !            12:   <li><a href="#What">What is it ?</a></li>
        !            13:   <li><a href="#it:">How to use it</a>
        !            14:     <ol>
        !            15:       <li><a href="#Finding">Finding packages</a></li>
        !            16:       <li><a href="#Installing">Installing packages</a></li>
        !            17:       <li><a href="#Upgrading">Upgrading packages</a></li>
        !            18:       <li><a href="#Search">Search for latest</a></li>
        !            19:       <li><a href="#Sticking">Sticking to a given distribution</a></li>
        !            20:     </ol>
        !            21:   </li>
        !            22:   <li><a href="#Rpmfind">Rpmfind configuration file</a></li>
        !            23:   <li><a href="#Autoupgrad">Autoupgrading using rpmfind</a></li>
        !            24:   <li><a href="#does">How does it work</a></li>
        !            25:   <li><a href="#Download">Download it</a></li>
        !            26:   <li><a href="#Todo">Todo</a></li>
        !            27: </ol>
1.5       veillard   28: 
1.6     ! veillard   29: <h2><a name="What">What is it ?</a></h2>
1.5       veillard   30: 
                     31: <p>Basically, rpmfind is a program that will find RPM files on rufus for
                     32: you.</p>
                     33: 
                     34: <p>For example, <tt>rpmfind gimp</tt> will tell you what packages are needed
                     35: to install Gimp on your machine, where to find them, and how much space it
                     36: will take on your hard drive (so you can also estimate the download time), and
                     37: can fetch the required files for you.</p>
                     38: 
                     39: <p>Rpmfind can also be used to query the RPM database for existing packages
                     40: using a keyword or a regular expression.</p>
                     41: 
1.6     ! veillard   42: <h2><a name="it:">How to use it:</a></h2>
1.5       veillard   43: 
                     44: <p>Rpmfind can be used in various modes, here is a description of the standard
                     45: ways of using it</p>
                     46: 
1.6     ! veillard   47: <h3><a name="Finding">Finding packages:</a></h3>
1.1       veillard   48: 
1.5       veillard   49: <p>This mode is used to find packages related to a given topic defined by a
                     50: keyword of a regex. The syntax is <code>rpmfind --apropos regex</code> and
                     51: will query the full set of RPM indexed on rpmfind.net for package name and
                     52: summary descriptions.</p>
1.1       veillard   53: 
1.5       veillard   54: <p>For example I have heard about a Borland like programming environment, let'
                     55: learn about it:</p>
                     56: <pre>$ rpmfind --apropos borland
                     57: 1: ftp://rpmfind.net/linux/contrib/i386/rhide-1.3-1.i386.rpm
                     58:   rhide : Rhide is a very nice IDE exactly like Borland's
                     59: $</pre>
1.1       veillard   60: 
1.5       veillard   61: <p>In that case the query found only one package, all the package containing
                     62: the substring in their name or summary will be shown.</p>
                     63: 
1.6     ! veillard   64: <h3><a name="Installing">Installing packages:</a></h3>
1.5       veillard   65: 
                     66: <p>This is the "default" mode of rpmfind where you know the name of the
                     67: package you want to install and rpmfind will locate the "best" package
                     68: accordingly to your installed distribution, and show also all the other
                     69: packages needed to solve the dependancies needed.</p>
                     70: 
                     71: <p>For example let's install xbill game on the machine:</p>
                     72: <pre>$ rpmfind xbill
1.1       veillard   73: Arch : i586, Os : Linux
                     74: Default distribution : Red Hat Software(Hurricane)
1.5       veillard   75: owning 249 of 338 installed packages
                     76: Get http://rpmfind.net//linux/RDF/resources/xbill.rdf
                     77: Get http://rpmfind.net//linux/RDF/redhat/5.0/i386/xbill-2.0-2.i386.rdf
1.1       veillard   78: Installing xbill will requires 183 KBytes
                     79: 
                     80: ### To Transfer:
1.5       veillard   81: ftp://rpmfind.net/linux/redhat/redhat-5.0/i386/RedHat/RPMS/xbill-2.0-2.i386.rpm
                     82: Do you want to download these files to /tmp [Y/n/a] ? : y
                     83: saving to /tmp/xbill-2.0-2.i386.rpm
                     84: $</pre>
                     85: 
                     86: <p>There is only one package needed to install the game and it has been saved
                     87: in /tmp. <strong>Note</strong> that rpmfind can be run by any users, it doesn'
                     88: requires root access. Installing the package, however require root privileges
                     89: (do "<code>rpm -i /tmp/xbill-2.0-2.i386.rpm</code>").</p>
                     90: 
1.6     ! veillard   91: <h3><a name="Upgrading">Upgrading packages:</a></h3>
1.5       veillard   92: 
                     93: <p>In  the "default" mode, rpmfind doesn't try to replace existing packages,
                     94: so a specific "upgrade" mode exists to check for replacement of older
                     95: packages. It also walks down the dependency lists and also suggest upgrades
                     96: for them:</p>
                     97: <pre>$ rpmfind -q --upgrade balsa
1.1       veillard   98: [search for approx 30 seconds ... 28.8 Kbps PPP connection]
                     99: Installing balsa will requires 9574 KBytes
                    100: 
                    101: ### To Transfer:
1.5       veillard  102: ftp://rpmfind.net/linux/freshmeat/libpng/libpng-1.0.1-1.i386.rpm
                    103: ftp://rpmfind.net/linux/redhat/redhat-5.0/i386/RedHat/RPMS/ImageMagick-3.9.1-1.i386.rpm
                    104: ftp://rpmfind.net/linux/redhat-labs/gnome/support/RPMS/giflib-3.0-2.i386.rpm
                    105: ftp://rpmfind.net/linux/contrib/hurricane/i386/giflib-3.0-4.i386.rpm
                    106: ftp://rpmfind.net/linux/redhat/redhat-5.0/i386/RedHat/RPMS/libgr-progs-2.0.13-4.i386.rpm
                    107: ftp://rpmfind.net/linux/redhat-labs/gnome/devel/1998052417/RPMS/imlib-1.4-1998052414.i386.rpm
                    108: ftp://rpmfind.net/linux/redhat-labs/gnome/devel/1998052417/RPMS/glib-1.1.0-1998052414.i386.rpm
                    109: ftp://rpmfind.net/linux/redhat-labs/gnome/devel/1998052417/RPMS/gtk+-1.1.0-1998052414.i386.rpm
                    110: ftp://rpmfind.net/linux/redhat-labs/gnome/devel/1998052417/RPMS/gnome-libs-0.13-1998052414.i386.rpm
                    111: ftp://rpmfind.net/linux/redhat-labs/gnome/devel/1998052417/RPMS/balsa-0.2.0-1998052416.i386.rpm
                    112: Do you want to download these files to /tmp [Y/n/a] ? : n
                    113: $</pre>
                    114: 
                    115: <p>The <code>-q</code> flag is used to reduce the verbosity of rpmfind.</p>
                    116: 
1.6     ! veillard  117: <h3><a name="Search">Search for latest:</a></h3>
1.5       veillard  118: 
                    119: <p>The last rpmfind mode is "latest" performing the search to the most
                    120: up-to-date package, in that case rpmfind will not give higher priority to
                    121: package from the installed distribution or vendor, but will bring back the
                    122: most recent packages:</p>
                    123: <pre>$ rpmfind -$ rpmfind -q --latest knews
                    124: Installing knews will require 668 KBytes
                    125: 
                    126: ### To Transfer:
                    127: ftp://rpmfind.net/linux/redhat/redhat-5.0/i386/RedHat/RPMS/libpng-0.96-1.i386.rpm
                    128: ftp://rpmfind.net/linux/contrib/hurricane/i386/knews-1.0b.0-1.i386.rpm
                    129: Do you want to download these files to /tmp [Y/n/a] ? : y
                    130: Download libpng-0.96-1.i386.rpm [Y/n/a] ? :y
                    131: transfering ftp://rpmfind.net/linux/redhat/redhat-5.0/i386/RedHat/RPMS/libpng-0.96-1.i386.rpm
                    132: saving to /tmp/libpng-0.96-1.i386.rpm
                    133: Download knews-1.0b.0-1.i386.rpm [Y/n/a] ? :y
                    134: transfering ftp://rpmfind.net/linux/contrib/hurricane/i386/knews-1.0b.0-1.i386.rpm
                    135: saving to /tmp/knews-1.0b.0-1.i386.rpm
                    136: $</pre>
                    137: 
                    138: <p>This option is somewhat more dangerous since it may introduce significant
                    139: changes from the "standard distribution" you have installed and this may cause
                    140: problems when upgrading your base system when the new release is issued.</p>
                    141: 
1.6     ! veillard  142: <h3><a name="Sticking">Sticking to a given distribution</a></h3>
1.5       veillard  143: 
                    144: <p>The simplest way to instruct rpmfind to fetch packages from a given
                    145: distribution is to add the --dist option to the command line like in the
                    146: following:</p>
                    147: 
                    148: <p><code>$ rpmfind --dist redhat   gpg</code></p>
                    149: 
                    150: <p>it is also possible to use the <strong>no_distrib</strong> flag in the
                    151: [packages] section:</p>
                    152: 
                    153: <p><code>[packages]</code></p>
                    154: 
                    155: <p><code>no_distrib=rawhide</code></p>
                    156: 
1.6     ! veillard  157: <h2><a name="Rpmfind">Rpmfind configuration file</a></h2>
1.5       veillard  158: 
                    159: <p>Rpmfind creates and maintains a per-user configuration file, saved in
                    160: $HOME/.rpmfind .</p>
                    161: 
                    162: <p></p>
                    163: 
                    164: <p>Here is some of the options, their meaning and default values:</p>
                    165: <dl>
                    166:   <dt><strong>version</strong></dt>
                    167:     <dd><p>this is maintained by rpmfind and is used for detection of
                    168:       upgrades</p>
                    169:     </dd>
                    170: </dl>
                    171: <dl>
                    172:   <dt><strong>server</strong></dt>
                    173:     <dd><p>which RDF server to contact, currently rufus is the main one bu new
                    174:       mirrors are being maintained</p>
                    175:     </dd>
                    176: </dl>
                    177: <dl>
                    178:   <dt><strong>prefix</strong></dt>
                    179:     <dd><p>prefix where the RPM local database is to be found, this can be
                    180:       /usr/local if RPM is not the native packaging format of your system</p>
                    181:     </dd>
                    182: </dl>
                    183: <dl>
                    184:   <dt><strong>downloadDir</strong></dt>
                    185:     <dd><p>where to save the packages loaded from the net, /tmp is the default
                    186:       value.</p>
                    187:     </dd>
                    188: </dl>
                    189: <dl>
                    190:   <dt><strong>httpProxy</strong></dt>
                    191:     <dd><p>URI to the HTTP proxy if your are using one</p>
                    192:     </dd>
                    193: </dl>
                    194: <dl>
                    195:   <dt><strong>ftpProxy</strong></dt>
                    196:     <dd><p>URI to the FTP proxy if you are using one</p>
                    197:     </dd>
                    198: </dl>
                    199: <dl>
                    200:   <dt><strong>verbose</strong></dt>
                    201:     <dd><p>setup the verbosity level, 1 is the default, 0 is quiet, >1 is
                    202:       annoying :-)</p>
                    203:     </dd>
                    204: </dl>
                    205: <dl>
                    206:   <dt><strong>mode</strong></dt>
                    207:     <dd><p>default mode for queries, default to "lookup", one can also select
                    208:       "upgrade" or "latest" if you like living on the bleeding edge. This is
                    209:       overridable via the command line</p>
                    210:     </dd>
                    211: </dl>
                    212: 
                    213: <p>The full list of options is listed in the config file itself, and a
                    214: specific comment related to it's use is provided there.</p>
                    215: 
1.6     ! veillard  216: <h2><a name="Autoupgrad">Autoupgrading using rpmfind</a></h2>
        !           217: 
        !           218: <p>I suggest using the latest versions (at least anything >= 1.5)</p>
        !           219: <ol>
        !           220:   <li>select sources for your autoupgrades, these must be ftp or file URL</li>
        !           221:   <li>edit your .rpmfind to add one <strong>autoupgradeURL</strong> entry per
        !           222:     source, like:
        !           223:     <p><code>autoupgradeURL=ftp://rpmfind.net/linux/redhat/updates/6.2/i386</code></p>
        !           224:     <p><code>autoupgradeURL=ftp://myserver.org/pub/rpm-updates/i386/</code></p>
        !           225:   </li>
        !           226:   <li>run <code>rpmfind --autoupgrade</code></li>
        !           227:   <li>If this look satisfactory add it to your root crontab</li>
        !           228: </ol>
        !           229: 
        !           230: <p>In the later case, it's a good idea to switch the <strong>paranoid</strong>
        !           231: option on in the configuration file, <strong>configure gpg</strong> on your
        !           232: system, and add your distribution trusted key to the root gpg keyring (gpg
        !           233: --import with the distro key one one can find at the top of a CD-Rom is a good
        !           234: way to do it). </p>
        !           235: 
        !           236: <h2><a name="does">How does it work ?</a></h2>
1.5       veillard  237: 
                    238: <p>Rpm2html exports the information about the packages available in RDF schema
                    239: on rpmfind.net. Thus, a simple descriptions of all the RPM packages and
                    240: associated resources available are exported in small files.</p>
                    241: 
                    242: <p>When rpmfind is asked for a resource it first asks the local RPM base if
                    243: it's available.  If it's not, it will request the associated RDF file on
                    244: rufus. The content is parsed to find descriptions of the various packages
                    245: providing the resources (distribution, vendor, version, date, etc...).  Based
                    246: on that, rpmfind sorts the various packages for suitability. Then it picks the
                    247: first one and fetches more complete information like the dependencies required
                    248: by these packages. Based on that, it then verifies that all dependencies
                    249: needed by this package are available, and recursively verifies that all these
                    250: resources are available (if needed) by fetching more packages from the
                    251: net.</p>
                    252: 
                    253: <p>At the end, rpmfind shows the list of packages to fetch and their total
                    254: size on disk.</p>
                    255: 
                    256: <p>If rpmfind noticed that one of the package needs a resource which is not
                    257: available, or an upgrade of the libc, it will discard the package and take the
                    258: second in the list, etc. (this is a highly recursive process).</p>
                    259: 
1.6     ! veillard  260: <h2><a name="Download">Download it</a></h2>
        !           261: 
        !           262: <p>The place to look for latest version is <a
        !           263: href="ftp://rpmfind.net/pub/rpmfind">ftp://rpmfind.net/pub/rpmfind</a> it is
        !           264: also part of <a href="http://rpmfind.net/linux/RPM/rpmfind.html">RedHat like
        !           265: distributions</a>.</p>
        !           266: 
        !           267: <h2><a name="Todo">Todo</a></h2>
1.5       veillard  268: 
                    269: <p>A lot of things:</p>
1.1       veillard  270: <ul>
1.5       veillard  271:   <li>Eventually an user interface to accept/refuse some of the packages
                    272:     automatically selected.</li>
                    273:   <li>Use RPM version, release and serial number for selection and
                    274:     dependencies, but this requires extensions to the rpm2html program and the
1.6     ! veillard  275:     RDF base (partly done).</li>
        !           276:   <li>An optional graphic interface (check <a
        !           277:     href="http://rpmfind.net/linux/RPM/gnorpm.html">gnorpm</a>).
1.5       veillard  278:     <p></p>
                    279:   </li>
1.1       veillard  280: </ul>
                    281: 
1.5       veillard  282: <p>Want to try rpmfind now ? <a href="download.html">Fetch it !</a></p>
1.1       veillard  283: 
1.5       veillard  284: <p></p>
1.1       veillard  285: 
                    286: <center>
1.5       veillard  287: <p><font color="#3366FF">[ <a href="index.html">Home</a> | <a
                    288: href="news.html">News</a> | <a href="http://rpmfind.net/linux/RPM/">Try it
                    289: !</a> | <a href="docs.html">Docs</a> | <a href="help.html">Help</a> | <a
                    290: href="mirrors.html">Mirrors</a> | <a href="download.html">Download</a>
1.1       veillard  291: ]</font></p>
1.5       veillard  292: 
                    293: <p><font color="#3366FF">[ </font><font color="#000000"> Rpmfind |
                    294: </font><font color="#3366FF"> | <a href="faq.html">FAQ</a> | <a
                    295: href="history.html">History</a> | <a href="license.html">License</a> | <a
                    296: href="messages/">Archive</a> | <a href="feedback.html">Feedback</a> | <a
                    297: href="links.html">Links</a> ]</font></p>
1.1       veillard  298: <address>
1.6     ! veillard  299:   <a href="mailto:veillard@w3.org">Daniel Veillard</a> 
1.5       veillard  300: </address>
1.1       veillard  301: 
1.6     ! veillard  302: <p>$Id: rpmfind.html,v 1.5 2000/07/03 10:19:21 veillard Exp $</p>
1.1       veillard  303: </center>
                    304: </body>
                    305: </html>

Webmaster