old-www/LDP/LG/issue31/tag_rpm.html

223 lines
7.6 KiB
HTML

<!--startcut ======================================================= -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<TITLE>The Answer Guy 31: What is an RPM?</TITLE>
</head>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
ALINK="#FF0000">
<!--endcut ========================================================= -->
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <hr> <P>
<!-- =============================================================== -->
<H1 align="center"><A NAME="answer">
<img src="../gx/dennis/qbubble.gif" alt="" border="0" align="middle">
<a href="./index.html">The Answer Guy</a>
<img src="../gx/dennis/bbubble.gif" alt="" border="0" align="middle">
</A></H1> <BR>
<H4 align="center">By James T. Dennis,
<a href="mailto:linux-questions-only@ssc.com">linux-questions-only@ssc.com</a><BR>
Starshine Technical Services,
<A HREF="http://www.starshine.org/">http://www.starshine.org/</A> </H4>
<p><hr><p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">What is an RPM?</H3>
<p><strong>From Andre Solheim on Fri, 03 Jul 1998
<br><br>
I am in the process og getting hold of Linux. Could you please tell
me what RPM is, and what it does?
<br><br>
I hope you can mail the answer to me directly
<br>André L Solheim
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
RPM is the <a href="http://www.redhat.com/">Red Hat</a> Package Management system.
This is an freely published set of specifications and
tools to allow Linux and Unix vendors to package their
software in a way that is amenable to automated installation
upgrade, removable and administration.
<br><br>
Although it has Red Hat's name in it --- it has been
adopted by most of the major Linux distribution maintainers.
The only to major holdouts are <a href="http://www.debian.org/">Debian</a>
and <a href="http://www.slackware.org/">Slackware</a>.
(There are a number of small, special purpose Linux
distributions that don't use any package management ---
many fit on a single diskette or designed to be installed
into a DOS subdirectory and run via <tt>LOADLIN</tt>).
<br><br>
Debian has developed their own package management format
(usually seen with the .deb extension) and Slackware
continues to use the tried and true "tarball" format with
pkgadd (?) and some other tools to help a little bit.
<br><br>
However, you can easily install the RPM subsystem into
any Linux that you want. You can also use RPM on some
packages and continue to manually build others from
tarballs (.tar.gz files). You can also convert between
package formats using tools like '<tt>alien</tt>' and
'<tt>rpm2cpio</tt>'
(or you can just use
<a href="http://www.gnome.org/mc/">Midnight Commander</a>
to open and work with .rpm files, just as you would any directory,
.zip or .tar file etc --- what how I usually delve into
RPM files if I'm not going to install them).
<br><br>
The RPM system as been ported to several flavors of Unix
and is no longer a purely "Linux" thing. Some sites are
using it to help maintain their Solaris, and HP-UX systems.
<br><br>
In the simplest form you can use commands like:
<blockquote><code>
rpm -i foo-1.2.rpm
</code></blockquote>
... to install a package (foo version 1.2 in this example).
<br><br>
There are also GUI and menu drive frontends to using RPM
.... but I usually use the command line.
<br><br>
You can also let rpm do the FTP for you with a
command like:
<blockquote><code>
rpm -U ftp://myserver.myorg.net/upgrades/bar-2.2.rpm
</code></blockquote>
... and this will upgrade the bar version 2.2 package off
of an internal ftp server (where I presumably have
placed it after testing it on one of my sacrificial admin
systems).
<br><br>
Another trick I've used is to get the description of an
rpm file without bothering to get the whole file
(to decide which files I wanted to fetch). I do this
with a command like:
<blockquote><code>
rpm -qpi ftp://ftp.redhat.com/..../contrib/.....rpm
</code></blockquote>
(I don't have a specific path and filename handy ---
but this should show the idea). You can also get a
list of the contents of a package with:
<blockquote><code>
rpm -qpl $SOME_RPM_FILE
</code></blockquote>
... or a list of files from an installed package with
<blockquote><code>
rpm -ql $SOME_INSTALLED_PACKAGE
</code></blockquote>
You can also do things like list all of the packages that
you have installed on the whole system (at least those that
you've installed using RPM) with a command like:
<blockquote><code>
rpm -qa
</code></blockquote>
... and you can verify a package with a command like:
<blockquote><code>
rpm -V foobar
</code></blockquote>
... which will give you a summary of every change to
the checksums, ownership, permission, timestamp, etc ---
of every file that was part of the "foobar" package.
<br><br>
Combining these in a relatively obvious way you can
check every package on your system with the following:
<blockquote><code>
rpm -qa | xargs rpm -V
</code></blockquote>
You can also find out which package a given file "belongs to"
with a command like:
<blockquote><code>
rpm -qf /some/file/that/was/installed/by/something
</code></blockquote>
You can learn more about the RPM system by looking at their
very own web site: <A HREF="http://www.rpm.org">http://www.rpm.org</A>.
<br><br>
So, good luck on your new adventure. Have fun with Linux.
</blockquote>
<!--================================================================-->
<P> <hr> <P>
<H5 align="center"><a href="http://www.linuxgazette.com/copying.html"
>Copyright &copy;</a> 1998, James T. Dennis <BR>
Published in <I>Linux Gazette</I> Issue 31 August 1998</H5>
<P> <hr> <P>
<!--================================================================-->
<table width="98%"><tr valign="center" align="center">
<td rowspan="3"><A HREF="./lg_answer31.html"><IMG
SRC="../gx/dennis/answernew.gif"
ALT="[ Answer Guy Index ]"></A></td>
<td><A HREF="tag_backup.html">backup</A></td>
<td><A HREF="tag_uidgid.html">uidgid</A></td>
<td><A HREF="tag_connect.html">connect</A></td>
<td><A HREF="tag_95slow.html">95slow</A></td>
<td><A HREF="tag_badblock.html">badblock</A></td>
<td><A HREF="tag_trident.html">trident</A></td>
<td><A HREF="tag_sound.html">sound</A></td>
</tr><tr valign="center" align="center">
<td><A HREF="tag_kernel.html">kernel</A></td>
<td><A HREF="tag_solprint.html">solprint</A></td>
<td><A HREF="tag_idescsi.html">idescsi</A></td>
<td><A HREF="tag_distrib.html">distrib</A></td>
<td><A HREF="tag_modem.html">modem</A></td>
<td><A HREF="tag_NDS.html">NDS</a></td>
<td><A HREF="tag_rpm.html">rpm</A></td>
</tr><tr valign="center" align="center">
<td><A HREF="tag_guy.html">guy</A></td>
<td><A HREF="tag_maildns.html">maildns</A></td>
<td><A HREF="tag_memleak.html">memleak</a></td>
<td><A HREF="tag_multihead.html">multihead</A></td>
<td><A HREF="tag_cdr.html">cdr</A></td>
</tr></table>
<P> <hr> <P>
<!--================================================================-->
<A HREF="./index.html"><IMG SRC="../gx/indexnew.gif"
ALT="[ Table Of Contents ]"></A>
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif"
ALT="[ Front Page ]"></A>
<A HREF="lg_bytes31.html"><IMG SRC="../gx/back2.gif"
ALT="[ Previous Section ]"></A>
<A HREF="./searls.html"><IMG SRC="../gx/fwd.gif"
ALT="[ Next Section ]"></A>
<!--startcut ======================================================= -->
</body>
</html>
<!--endcut ========================================================= -->