Библиотека сайта rus-linux.net
10.1. Using the Red Hat Package Manager (RPM)
The Red Hat distribution of Linux, including kernel, libraries, and applications are provided as RPM files. An RPM file, also known as a "package" is a way of distributing software so that it can be easily installed, upgraded, queried, and deleted. RPM files contain information on the package's name, version, other file dependency information (if applicable), platform (such as Intel or Alpha, etc.), as well as default file install locations.
The RPM utility was first developed by Red Hat and provided as an Open Source product as is common in the Linux community. Other developers picked it up and added extra functionality. The RPM method of packaging files has become popular and is used not only on Red Hat's but on some other distributions as well.
Popular Linux applications are almost always released as RPM files,
usually in fairly short order. However, in the Unix world the
defacto-standard for package distribution continues to be by way of
so-called "tarballs". Tarballs are simply files that are
readable with the ``tar
'' utility. Installing from
tar is usually significantly more tedious than using RPM. So why would
people choose to do so? Unfortunately, sometimes it takes a few weeks
for developers to get the latest version of a package converted to RPM
(many developers first release them as tarballs).
If you start installing or upgrading your system or applications with tar, your RPM database will become out-of-date and inconsistent. This isn't really a big deal (when I used Slackware, I used tar exclusively -- there was no other choice -- without too much discomfort), but wherever possible I try to be patient and wait until an RPM becomes available, or perhaps send a polite request to the developer of the package. (You can also build your own RPM files and distribute them to others, which is sometimes helpful to developers who don't have the ability or time to produce such files themselves.)
A really good place to check if a piece of software is available in RPM form is the RPM repository at http://rufus.w3.org/linux/RPM/. The repository provides indexed categories which can be helpful to locate a given RPM file, and contains pointers to thousands of such files.
To query a package, use ``rpm -q pkg-name
'' (eg.
``rpm -q pine
''). RPM will either tell you what
version of the package is already installed, or that the package is not
installed.
Assuming the package is installed already, and is an earlier
version than the update package you downloaded (which it should be), then
you should be able to apply the update with ``rpm -Uvh
pkg-name
''. If all goes well, the package will be
automatically installed and immediately ready for use. If not, RPM will
give you a pretty good reason (for example, perhaps a supporting package
needs to be upgraded first). This may require a bit of thinking, but
problems such as these are very straightforward to figure out.
If, on the other hand, the package is not yet
installed, and you decide you wish to install it, type ``rpm
-ivh pkg-name
''. If there are any supporting packages that are
required, RPM will tell you.
Sometimes, you will want to install a package that is only available in source format. In fact, unless you are installing packages from a trusted source (such as the Red Hat FTP site), you probably should install from source in case the binaries contain a trojan horse or other nasty thing (of course, a source RPM could also contain such a thing, but they are unlikely to because they would probably be exposed in short order by another developer).
The way to install a package from source is to specify the
``rebuild
'' switch to the RPM utility. For
example:
|
The above command would configure and compile the ``foo'' package,
producing a binary RPM file in the
``
''
directory (assuming you are using Linux on the Intel platform). You can
then install the package as you normally would./usr/src/redhat/RPMS/i386/
Finally, if you are having problems getting a source package to compile (perhaps you need to modify a makefile, or change a configuration option, etc.) you can use the following steps (again, illustrating our ficticious ``foo'' package example) to compile the source, build a new binary package, and then install from the binary package:
|
Make whatever changes you feel are needed to the ``.spec'' file, and then type:
|
This will rebuild the package using whatever changes you have made
to the ``.spec'' file. As above, the resultant binary RPM file will be
located in
``
'',
and can be installed as you normally would./usr/src/redhat/RPMS/i386/
You should look at the Red Hat documentation for more information
on RPM. It is an extremely powerful tool that is worth learning in finer
detail. The best source of information on RPM is ``Maximum RPM'', which
is available in both book form, as well as in postscript format at http://www.rpm.org/maximum-rpm.ps.gz. (If you decide to print
the postscript document, be advised that you'll need a
lot of paper to do so!) There is a smaller guide,
the ``RPM-HOWTO
'', at http://www.rpm.org/support/RPM-HOWTO.html available as
well.