linux中RPM命令的20个实际示例

rpm(RedHat Package Manager) 简介

  1. rpm是免费的,并在以下条件下发布GPL(General Public License)。
  2. rpm将所有已安装包的信息保存在/var/lib/rpm数据库。
  3. rpm是 Linux 系统下安装包的唯一方式,如果你已经使用源代码安装了包,那么rpm不能管理它。
  4. rpm处理.rpm文件,其中包含有关软件包的实际信息,例如:what it is,from where it comes,dependencies info,version info等等。

rpm 命令有五种基本模式

  1. Install: 用于安装rpm包。
  2. Remove:它用于删除或卸载rpm`包。
  3. Upgrade:用于更新现有的rpm包。
  4. Verify: 用于验证rpm包。
  5. Query: 用于查询任何rpm包。

在哪里可以找到rpm

以下是rpm站点列表,你可以在其中找到并下载所有RPM包。

  1. http://rpmfind.net
  2. http://www.redhat.com
  3. http://freshrpms.net/
  4. http://rpm.pbone.net/

请记住你必须是root用户在 Linux 中安装软件包

1. 如何检查rpm签名包

在 Linux 系统上安装包之前,请务必检查包的 PGP 签名,并确保其完整性和来源是OK.使用以下命令–checksig(check signature) 选项来检查名为的包的签名pidgin.

  1. [rumenz@local]#rpm --checksig pidgin-2.7.9-5.el6.2.i686.rpm
  2. pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK

2. 如何安装rpm

要安装rpm软件包,请使用以下命令-i选项。例如,要安装一个名为的rpmpidgin-2.7.9-5.el6.2.i686.rpm.

  1. [rumenz@local]#rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm
  2. Preparing... ########################################### [100%]
  3. 1:pidgin ########################################### [100%]

rpm 命令和选项

  1. -i: 安装一个包
  2. -v: 详细显示更好的显示
  3. -h: 在解压包存档时打印散列标记。

3. 安装前如何检查rpm包的依赖关系

假设你想在安装或升级包之前进行依赖项检查。比如使用下面的命令来检查依赖BitTorrent-5.2.2-1-Python2.4.noarch.rpm包裹。它将显示包的依赖项列表。

  1. [rumenz@local]#rpm -qpR BitTorrent-5.2.2-1-Python2.4.noarch.rpm
  2. /usr/bin/python2.4
  3. python >= 2.3
  4. python(abi) = 2.4
  5. python-crypto >= 2.0
  6. python-psyco
  7. python-twisted >= 2.0
  8. python-zopeinterface
  9. rpmlib(CompressedFileNames) = 2.6

rpm 命令和选项

  1. -q: 查询一个包
  2. -p:列出此包提供的功能。
  3. -R: 列出此包所依赖的功能..

4. 如何安装无依赖的rpm

如果你知道所有需要的软件包都已经安装,你可以使用选项忽略这些依赖项–nodeps(no dependencies check) 在安装包之前。

  1. [rumenz@local]#rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm
  2. Preparing... ########################################### [100%]
  3. 1:BitTorrent ########################################### [100%]

上面的命令通过忽略依赖错误来强制安装rpm包,但是如果缺少这些依赖文件,那么程序将无法运行。

5. 如何检查已安装的rpm

使用-q带有包名的选项,将显示是否安装了 rpm。

  1. [rumenz@local]#rpm -q BitTorrent
  2. BitTorrent-5.2.2-1.noarch

6. 如何列出已安装rpm包的所有文件

要查看已安装的rpm包的所有文件,请使用-ql(query list) 与rpm命令。

  1. [rumenz@local]#rpm -ql BitTorrent
  2. /usr/bin/bittorrent
  3. /usr/bin/bittorrent-console
  4. /usr/bin/bittorrent-curses
  5. /usr/bin/bittorrent-tracker
  6. /usr/bin/changetracker-console
  7. /usr/bin/launchmany-console
  8. /usr/bin/launchmany-curses
  9. /usr/bin/maketorrent
  10. /usr/bin/maketorrent-console
  11. /usr/bin/torrentinfo-console

7. 如何列出最近安装的rpm

使用以下rpm命令-qa(query all) 选项,将列出所有最近安装的rpm包。

  1. [rumenz@local]#rpm -qa --last
  2. BitTorrent-5.2.2-1.noarch Tue 04 Dec 2012 05:14:06 PM BDT
  3. pidgin-2.7.9-5.el6.2.i686 Tue 04 Dec 2012 05:13:51 PM BDT
  4. cyrus-sasl-devel-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:06 PM BDT
  5. cyrus-sasl-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:05 PM BDT
  6. cyrus-sasl-md5-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:04 PM BDT
  7. cyrus-sasl-plain-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:03 PM BDT

8. 如何列出所有已安装的rpm

键入以下命令以打印Linux系统上已安装软件包的所有名称。

  1. [rumenz@local]#rpm -qa
  2. initscripts-9.03.31-2.el6.centos.i686
  3. polkit-desktop-policy-0.96-2.el6_0.1.noarch
  4. thunderbird-17.0-1.el6.remi.i686

9. 如何升级rpm

如果我们要升级任何rpm–Uupgrade) 选项将被使用。使用此选项的主要优点之一是它不仅会升级任何软件包的最新版本,而且还会保留旧软件包的备份,以便在较新升级的软件包不运行先前安装的软件包的情况下可以再次使用。

  1. [rumenz@local]#rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm
  2. Preparing... ########################################### [100%]
  3. 1:nx ########################################### [100%]

10. 如何删除rpm

要卸载rpm包,例如我们使用包名nx, 不是原来的包名nx-3.5.0-2.el6.centos.i686.rpm.这-e (erase)选项用于删除包。

  1. [rumenz@local]#rpm -evv nx

11. 如何删除没有依赖关系的rpm

–nodeps(Do not check dependencies) 选项强制从系统中删除rpm包。但请记住,删除特定包可能会破坏其他工作应用程序。

  1. [rumenz@local]#rpm -ev --nodeps vsftpd

12. 如何查询一个文件属于哪个rpm

假设你有文件列表,并且想找出属于这些文件的包。例如,以下命令与-qf(query file) 选项将显示一个文件/usr/bin/htpasswd由包裹拥有httpd-tools-2.2.15-15.el6.centos.1.i686.

  1. [rumenz@local]#rpm -qf /usr/bin/htpasswd
  2. httpd-tools-2.2.15-15.el6.centos.1.i686

13. 如何查询已安装的rpm包信息

假设你已经安装了一个rpm包并且想知道有关该包的信息。下列-qi(query info) 选项将打印已安装包的可用信息。

  1. [rumenz@local]#rpm -qi vsftpd
  2. Name : vsftpd Relocations: (not relocatable)
  3. Version : 2.2.2 Vendor: CentOS
  4. Release : 11.el6 Build Date: Fri 22 Jun 2012 01:54:24 PM BDT
  5. Install Date: Mon 17 Sep 2012 07:55:28 PM BDT Build Host: c6b8.bsys.dev.centos.org
  6. Group : System Environment/Daemons Source RPM: vsftpd-2.2.2-11.el6.src.rpm
  7. Size : 351932 License: GPLv2 with exceptions
  8. Signature : RSA/SHA1, Mon 25 Jun 2012 04:07:34 AM BDT, Key ID 0946fca2c105b9de
  9. Packager : CentOS BuildSystem <http://bugs.centos.org>
  10. URL : http://vsftpd.beasts.org/
  11. Summary : Very Secure Ftp Daemon
  12. Description :
  13. vsftpd is a Very Secure FTP daemon. It was written completely from
  14. scratch.

14. 安装前获取rpm包信息

你从网上下载了一个软件包,想在安装前了解软件包的信息。例如,以下选项-qip(query info package) 将打印包[sqlbuddy]的信息。

  1. [rumenz@local]#rpm -qip sqlbuddy-1.3.3-1.noarch.rpm
  2. Name : sqlbuddy Relocations: (not relocatable)
  3. Version : 1.3.3 Vendor: (none)
  4. Release : 1 Build Date: Wed 02 Nov 2011 11:01:21 PM BDT
  5. Install Date: (not installed) Build Host: rpm.bar.baz
  6. Group : Applications/Internet Source RPM: sqlbuddy-1.3.3-1.src.rpm
  7. Size : 1155804 License: MIT
  8. Signature : (none)
  9. Packager : Erik M Jacobs
  10. URL : http://www.sqlbuddy.com/
  11. Summary : SQL Buddy â Web based MySQL administration
  12. Description :
  13. SQLBuddy is a PHP script that allows for web-based MySQL administration.

15. 如何查询已安装rpm包的文档

要获取已安装软件包的可用文档列表,请使用以下命令和选项-qdf(query document file) 将显示与vmstat包相关的手册页。

  1. [rumenz@local]#rpm -qdf /usr/bin/vmstat
  2. /usr/share/doc/procps-3.2.8/BUGS
  3. /usr/share/doc/procps-3.2.8/COPYING
  4. /usr/share/doc/procps-3.2.8/COPYING.LIB
  5. /usr/share/doc/procps-3.2.8/FAQ
  6. /usr/share/doc/procps-3.2.8/NEWS
  7. /usr/share/doc/procps-3.2.8/TODO

16. 如何验证rpm

验证软件包会将软件包的已安装文件信息与rpm数据库进行比较。这-Vp(verify package) 用于验证包。

  1. [rumenz@local downloads]#rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm
  2. S.5....T. c /etc/httpd/conf.d/sqlbuddy.conf

17. 如何验证所有rpm

键入以下命令以验证所有已安装的rpm包。

  1. [rumenz@local]#rpm -Va
  2. S.5....T. c /etc/rc.d/rc.local
  3. .......T. c /etc/dnsmasq.conf
  4. .......T. /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf
  5. S.5....T. c /etc/yum.conf
  6. S.5....T. c /etc/yum.repos.d/epel.repo

18. 如何导入rpmGPG 密钥

验证RHEL/CentOS/Fedora包,你必须导入GPG钥匙。为此,请执行以下命令。它会导入CentOS 6GPG 密钥。

  1. [rumenz@local]#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

19. 如何列出所有导入的rpmGPG 密钥

打印所有导入的GPG键,请使用以下命令。

  1. [rumenz@local]#rpm -qa gpg-pubkey*
  2. gpg-pubkey-0608b895-4bd22942
  3. gpg-pubkey-7fac5991-4615767f
  4. gpg-pubkey-0f2672c8-4cd950ee
  5. gpg-pubkey-c105b9de-4e0fd3a3
  6. gpg-pubkey-00f97f56-467e318a
  7. gpg-pubkey-6b8d79e6-3f49313d
  8. gpg-pubkey-849c449f-4cb9df30

20. 如何重建损坏的rpm数据库

有时rpm数据库会损坏并停止rpm和系统上其他应用程序的所有功能。所以,此时我们需要重建rpm数据库并借助以下命令进行恢复。

  1. [rumenz@local]# cd /var/lib/rpm
  2. [rumenz@local]# rm __db*
  3. [rumenz@local]# rpm --rebuilddb
  4. [rumenz@local]# rpmdb_verify Packages

返回笔记列表
入门小站