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