翻译自:20 Practical Examples of RPM Commands in Linux
国内译文:20个Linux中RPM命令的实际示例
前言
RPM(Red Hat Package Manager)是基于Red Hat的系统(RHEL,CentOS和Fedora)的默认开源和最流行的包管理工具。 rpm允许系统管理员和用户在Unix / Linux操作系统中安装,更新,卸载,查询,验证和管理系统软件包。 rpm文件常以.rpm为后缀,包括已编的译软件程序 和 库。rpm命令仅适用于基于.rpm格式的软件包。
关于RPM (RedHat Package Manager)的其他知识
- RPM是免费的,并根据GPL(通用公共许可证)发布。
- RPM将所有已安装软件包的信息保存在/var/lib/rpm数据库中。
- RPM是在Linux系统下安装软件包的唯一方法,如果你使用源代码安装软件包,则rpm将无法管理它。
- RPM处理.rpm文件,其中包含有关软件包的实际信息,例如:它是什么,来自何处,依赖项信息,版本信息等。
RPM命令有五种基本模式
Install:用于安装任何RPM包。
Remove :用于erase, remove or un-install 任何RPM包。
Upgrade:它用于更新现有的RPM包。
Verify :它用于验证RPM包。
Query:它用于查询任何RPM包。
在哪找RPM包
下面是rpm站点列表,您可以在其中找到并下载所有RPM包。
请记住,在Linux中安装软件包时,必须是root用户。
rpm命令示例
如何检查RPM签名包
在Linux系统上安装软件包之前,请务必检查软件包的PGP签名,并确保其完整性和来源正常。 使用以下命令和-checksig(check signature)选项检查名为pidgin的包的签名。
[root@tecmint]# rpm --checksig pidgin-2.7.9-5.el6.2.i686.rpm pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK
如何安装RPM包
以安装pidgin-2.7.9-5.el6.2.i686.rpm为例
root@tecmint]# rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm Preparing... ########################################### [100%] 1:pidgin ########################################### [100%]
-q (query)查询安装的软件
-p 列出此程序包提供的功能。
-R 列出此程序包所依赖的功能
[root@tecmint]# rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm Preparing... ########################################### [100%] 1:BitTorrent ########################################### [100%]
上面的命令通过忽略依赖项报错来强制安装rpm包,但是如果缺少这些依赖项文件,那么程序根本无法运行,直到你安装它们。
[root@tecmint]# rpm -qa --last BitTorrent-5.2.2-1.noarch Tue 04 Dec 2012 05:14:06 PM BDT pidgin-2.7.9-5.el6.2.i686 Tue 04 Dec 2012 05:13:51 PM BDT cyrus-sasl-devel-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:06 PM BDT cyrus-sasl-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:05 PM BDT cyrus-sasl-md5-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:04 PM BDT cyrus-sasl-plain-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:03 PM BDT
[root@tecmint]# rpm -qa initscripts-9.03.31-2.el6.centos.i686 polkit-desktop-policy-0.96-2.el6_0.1.noarch thunderbird-17.0-1.el6.remi.i686
[root@tecmint]# rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm Preparing... ########################################### [100%] 1:nx ########################################### [100%]
[root@tecmint]# rpm -evv nx
[root@tecmint]# rpm -ev --nodeps vsftpd
如何查询文件属于哪个RPM包
[root@tecmint]# rpm -qf /usr/bin/htpasswd httpd-tools-2.2.15-15.el6.centos.1.i686
[root@tecmint]# rpm -qi vsftpd Name : vsftpd Relocations: (not relocatable) Version : 2.2.2 Vendor: CentOS Release : 11.el6 Build Date: Fri 22 Jun 2012 01:54:24 PM BDT Install Date: Mon 17 Sep 2012 07:55:28 PM BDT Build Host: c6b8.bsys.dev.centos.org Group : System Environment/Daemons Source RPM: vsftpd-2.2.2-11.el6.src.rpm Size : 351932 License: GPLv2 with exceptions Signature : RSA/SHA1, Mon 25 Jun 2012 04:07:34 AM BDT, Key ID 0946fca2c105b9de Packager : CentOS BuildSystem <http://bugs.centos.org> URL : http://vsftpd.beasts.org/ Summary : Very Secure Ftp Daemon Description : vsftpd is a Very Secure FTP daemon. It was written completely from scratch.
[root@tecmint]# rpm -qip sqlbuddy-1.3.3-1.noarch.rpm Name : sqlbuddy Relocations: (not relocatable) Version : 1.3.3 Vendor: (none) Release : 1 Build Date: Wed 02 Nov 2011 11:01:21 PM BDT Install Date: (not installed) Build Host: rpm.bar.baz Group : Applications/Internet Source RPM: sqlbuddy-1.3.3-1.src.rpm Size : 1155804 License: MIT Signature : (none) Packager : Erik M Jacobs URL : http://www.sqlbuddy.com/ Summary : SQL Buddy â Web based MySQL administration Description : SQLBuddy is a PHP script that allows for web-based MySQL administration.
[root@tecmint]# rpm -qdf /usr/bin/vmstat /usr/share/doc/procps-3.2.8/BUGS /usr/share/doc/procps-3.2.8/COPYING /usr/share/doc/procps-3.2.8/COPYING.LIB /usr/share/doc/procps-3.2.8/FAQ /usr/share/doc/procps-3.2.8/NEWS /usr/share/doc/procps-3.2.8/TODO
如何验证RPM包
验证程序包会将程序包的已安装文件的信息与rpm数据库进行比较。 -Vp(验证包)用于验证包。
[root@tecmint downloads]# rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm S.5....T. c /etc/httpd/conf.d/sqlbuddy.conf
如何验证所有RPM包
[root@tecmint]# rpm -Va S.5....T. c /etc/rc.d/rc.local .......T. c /etc/dnsmasq.conf .......T. /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf S.5....T. c /etc/yum.conf S.5....T. c /etc/yum.repos.d/epel.repo
如何导入RPM GPG密钥
要验证RHEL / CentOS / Fedora软件包,必须导入GPG密钥。为此,请执行以下命令。它将导入CentOS 6 GPG密钥。
[root@tecmint]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
如何列出所有导入的RPM GPG密钥
[root@tecmint]# rpm -qa gpg-pubkey* gpg-pubkey-0608b895-4bd22942 gpg-pubkey-7fac5991-4615767f gpg-pubkey-0f2672c8-4cd950ee gpg-pubkey-c105b9de-4e0fd3a3 gpg-pubkey-00f97f56-467e318a gpg-pubkey-6b8d79e6-3f49313d gpg-pubkey-849c449f-4cb9df30
如何重建损坏的RPM数据库
有时rpm数据库会损坏并停止rpm和系统上其他应用程序的所有功能。因此,当时我们需要重建rpm数据库并在以下命令的帮助下恢复它。
[root@tecmint]# cd /var/lib [root@tecmint]# rm __db* [root@tecmint]# rpm --rebuilddb [root@tecmint]# rpmdb_verify Packages