Linux命令——rpm

翻译自: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
View Code

如何安装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%]
View Code
-i    (install) 安装
-v     显示安装详细信息
-h     显示安装的进度
如何在安装之前检查RPM包的依赖关系
假设你希望在安装或升级软件包之前进行依赖性检查。 例如,使用以下命令检查BitTorrent-5.2.2-1-Python2.4.noarch.rpm包的依赖关系。 它将显示包的依赖项列表。
View Code

-q   (query)查询安装的软件

-p  列出此程序包提供的功能。

-R    列出此程序包所依赖的功能

如何安装RPM包,不考虑依赖
如果你知道所有需要的软件包已事先安装好,那么在安装软件包之前,可以使用-nodeps选项(无依赖项检查)来忽略这些依赖项。
[root@tecmint]# rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm

Preparing...                ########################################### [100%]
   1:BitTorrent             ########################################### [100%]
View Code

上面的命令通过忽略依赖项报错来强制安装rpm包,但是如果缺少这些依赖项文件,那么程序根本无法运行,直到你安装它们。

如何检查已安装的RPM包
使用-q选项将显示是否安装了rpm包
View Code
如何列出已安装的RPM软件包的所有文件
要查看已安装rpm包的所有文件,请使用带rpm命令的-ql(查询列表)
View Code
如何列出最近安装的RPM包
使用以下rpm命令和-qa(查询全部)选项,将列出所有最近安装的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
View Code
如何列出所有已安装的RPM包
[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
View Code
如何升级RPM包
如果我们要升级任何RPM包,可以使用“-U”(升级)选项。 使用此选项的一个主要优点是,它不仅会升级任何软件包的最新版本,而且还会维护旧软件包的备份,以便在较新的软件包无法运行时,旧软件包可以顶上再次运行。
[root@tecmint]# rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm
Preparing...                ########################################### [100%]
   1:nx                     ########################################### [100%]
View Code
如何删除RPM包
要卸载RPM软件包,例如我们使用软件包名称nx,而不是原始软件包名称nx-3.5.0-2.el6.centos.i686.rpm。
[root@tecmint]# rpm -evv nx
View Code
-e    (擦除)选项用于删除包。
-vv     打印大量丑陋的调试信息。
如何删除RPM包,不考虑依赖
-nodeps(不检查依赖项)选项强制从系统中删除rpm包。但请记住,删除特定包可能会破坏其他工作应用程序。
[root@tecmint]# rpm -ev --nodeps vsftpd
View Code

如何查询文件属于哪个RPM包

假设您有一些文件,现在想要知道这些文件属于哪个软件包。 
[root@tecmint]# rpm -qf /usr/bin/htpasswd

httpd-tools-2.2.15-15.el6.centos.1.i686
View Code
如何查询已安装的RPM包的信息
假设您已安装rpm包并想知道有关该包的信息。使用-qi(查询信息)选项将打印已安装软件包的可用信息。
[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.
View Code
安装前获取RPM包的信息
你已从Internet下载软件包,并希望在安装之前了解软件包的信息。例如,以下选项-qip(查询信息包)将打印包sqlbuddy的信息。
[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.
View Code
如何查询已安装的RPM包的文档
要获取已安装软件包的可用文档列表,请使用以下命令,并使用选项-qdf(查询文档文件)将显示与vmstat软件包相关的手册页。
[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
View Code

如何验证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
View Code

如何验证所有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
View Code

如何导入RPM GPG密钥

要验证RHEL / CentOS / Fedora软件包,必须导入GPG密钥。为此,请执行以下命令。它将导入CentOS 6 GPG密钥。

[root@tecmint]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
View Code

如何列出所有导入的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
View Code

如何重建损坏的RPM数据库

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

[root@tecmint]# cd /var/lib
[root@tecmint]# rm __db*
[root@tecmint]# rpm --rebuilddb
[root@tecmint]# rpmdb_verify Packages
View Code

猜你喜欢

转载自www.cnblogs.com/kelamoyujuzhen/p/9937166.html