23.34
0
Installing a Package with rpm
The following example uses wget to download the rar package, a compression and packaging utility. The example then installs the rpm package located in the current directory. Options in the rpm command include -U for update or install, -v for verbose, and
-h to show progress hash marks.

NOTE    The -i option of rpm can also be used to install a package. However, most people use the -U option because it causes the package you are installing to replace an earlier, existingpackage of the same name if one exists. You can use the -i option, however, if you want multiple instances of the same package to exist on the system.Having multiple kernel packages is an example of this.

 wget   \
 rpm-Uvh  rar-3.7.1-0.pm.0.i586.rpm
Preparing...                                 #####################################  [100%]
1:rar               ##################################### [100%]

Using the rar package as an example, the following command installsthe package directly from the Internet. This approach works with http and ftp protocols.


 rpm-Uvh  \
Retrieving  http://packman.iu-bremen.de/suse/10.3/i586/rar-3.7.1-0.pm.0.i586.rpm warning: /var/tmp/rpm-xfer.9eOu3a:  Header V3DSA  signature:  NOKEY,  key   ID
9a795806
Preparing...                                 ###########################################  [100%]
1:rar                                       ###########################################  [100%]


Upgrading a Package with rpm
If an older version of the package is already installed, an error will occur. Use rpm
-Uvh to upgrade an existingpackage to a newer version:

 rpm-Uvh  \
Retrieving  http://packman.iu-bremen.de/suse/10.3/i586/rar-3.7.0-0.pm.0.i586.rpm warning:  /var/tmp/rpm-xfer.HgM2qb:  Header V3DSA  signature:  NOKEY,  key   ID
9a795806
Preparing...                          ###########################################  [100%]
1:rar                               ###########################################  [100%]

This example installed an older version of the command. To upgrade, use the same
rpm command line options, but with a newer package. For example:

 rpm-Uvh  \
Retrieving  http://packman.iu-bremen.de/suse/10.3/i586/rar-3.7.1-0.pm.0.i586.rpm warning:  /var/tmp/rpm-xfer.HgM2qb:  Header V3DSA  signature:  NOKEY,  key   ID




9a795806
Preparing...                                  ###########################################  [100%]
1:rar                                       ###########################################  [100%]


Removing a Packagewith rpm
To remove an installed package, use the -e option as follows:

 rpm-e flash-player

Sometimes, you will find that rpm will not remove a package due to failed dependen- cies.  This is one of the downsides of rpm it does not resolve these dependencies.

 rpm-e gzip
error:  Failed dependencies:
gzip is needed by  (installed)  perl-5.8.8-75.i586gzip is  needed  by  (installed)  mkinitrd-2.1-36.i586
...

The command failed because of dependency issues. The best way to resolve depend- ency issues is to use zypper or yast to work through the dependencies automatically. However, you may reach a point where you have to forcethe install or removal of a package.

WARNING!    Forcing the install or removal of a package is DANGEROUS and may result in an unstable system. Make sure you know precisely what you’re doing.

In this example, you specify that you want to remove the i586 version of the zoo package and ignore dependencies:

 rpm–e  --nodeps zoo-2.10-938.i586


Querying Information about RPM Packages
The following example shows how to query installed packages for the zoo package and display version information about that package:

 rpm-q   zoo
zoo-2.10-938

Use the -qp option to get information about an RPM file in the presentdirectory:

 rpm-qp   zoo-2.10-938.i586.rpm
zoo-2.10-938

To see a listof all the packages installed on your system, type the following:

 rpm-qa   | less
OpenOffice_org-templates-labels-letter-1.0-2



kdegames4-carddecks-other-3.93.0-4 glibc-i18ndata-2.6.1-18
...

Check a file on your system to see what package the file belongs to, if any:

 rpm-qf/etc/sysctl.conf
procps-3.2.7-67

Now that you know how to select the package(s) you want to query, let’s get a little more information out of them. This example lists standard details about an installedpackage:

 rpm-qi  zoo
Name              : zoo     Relocations: (not relocatable)
Version            : 2.10   Vendor: SUSE LINUX Products GmbH, Nuernberg,  Germany
Release          : 938      Build Date: Fri  31  Aug 2007  09:23:01 PM  CDT Install  Date:Sat 08  Sep  2007  12:47:21 PM  CDT
Build  Host   : martinu.suse.de
Group              : Productivity/Archiving/Compression
Source  RPM     : zoo-2.10-938.src.rpm
Size               : 110796
License          : Public  Domain, Freeware
Signature       : DSA/SHA1, Fri 31  Aug2007   09:24:02 PM  CDT,  Key  ID  a84edae89c800aca
Packager          : http://bugs.opensuse.org
Summary         : Pack   Program
Description  :
Zoo   is a  packer based on  the  Lempel-Ziv algorithm.  Lots of files  on DOS/AmigaDOS and   TOS systems used  this  packerfor their  archives. The compression rate  of gzip is  not reached, and   thus zoo   should  only be used for  decompressing old archives.

Authors:
--------
Ian  Phillipps           <igp@camcon.co.uk>
J.  BrianWaters    <jbwaters@bsu-cs.bsu.edu> Paul  Homchick     <rutgers!cgh!paul>
Mark   Alexander        <amdahl!drivax!alexande>
Randal  L. Barnes <rlb@skyler.mavd.honeywell.com> Distribution: openSUSE  10.3 (i586)

This liststhe content of an RPM file that’s in the local directory:

 rpm-qlpzoo-2.10-938.i586.rpm
/usr/bin/fiz
/usr/bin/zoo
/usr/share/doc/packages/zoo
/usr/share/doc/packages/zoo/Copyright
/usr/share/man/man1/fiz.1.gz
/usr/share/man/man1/zoo.1.gz




Combine various query options to check an RPM file before it’s installed:

 rpm-qilp  zoo-2.10-938.i586.rpm
...

Authors:
--------
Ian  Phillipps           <igp@camcon.co.uk>
J.  BrianWaters    <jbwaters@bsu-cs.bsu.edu> Paul  Homchick    <rutgers!cgh!paul>
Mark   Alexander        <amdahl!drivax!alexande>
Randal  L. Barnes <rlb@skyler.mavd.honeywell.com> Distribution: openSUSE  10.3 (i586)
/usr/bin/fiz
/usr/bin/zoo
/usr/share/doc/packages/zoo
/usr/share/doc/packages/zoo/Copyright
/usr/share/man/man1/fiz.1.gz
/usr/share/man/man1/zoo.1.gz

This example lists preinstall and postinstall scripts that come with an installed RPM package:

 rpm-q   --scripts  kernel-default | less

Several other query options are available. See the rpm man page for details.The most powerfulrpm query option is --queryformat (or --qf). It lets you build from scratch the output string. This queries all installedpackages to see what host they were built on:

 rpm-qa   --queryformat  ‘Package %{NAME}  was  built  on  %{BUILDHOST}\n’  | less
Package  cracklib-dict-full was  built on  yggdrasil.suse.de
Package  openSUSE-release  was  built on  lrupp1.suse.de
Package OpenOffice_org-icon-themes  was  built on  cara.suse.de
...

The following command makes a sorted list of all non-SUSEpackages:

 rpm-qa   --queryformat ‘%{VENDOR} %{NAME}\n’   | grep   -v “SUSE”  | sort

Here are a few more examples:

 rpm-qa   --qf ‘%{NAME}  is  licenced under   %{LICENSE}\n’
 rpm-qa   --qf ‘The   size of %{NAME}  is %{SIZE} bytes\n’
 rpm-qa   --qf  ‘For%{NAME}  get more  info here: %{URL}\n’
 rpm-qa   --qf  ‘For%{NAME}  the architecture  is: %{ARCH}\n’
 rpm-qa   --qf ‘The   %{NAME}  package is: %{SUMMARY}\n’

As you can imagine, the combinations are endless. Here’s how to list all of the variables:


 rpm--querytags | less

0 komentar:

Posting Komentar