RPM软件包管理器

时间:2019-04-29 03:17:29  来源:igfitidea点击:

RPM-红帽软件包管理器

rpmRed Hat软件包管理器是最受欢迎的软件包管理工具之一。默认情况下,许多Linux系统都附带此软件包管理器。RPM使管理员可以轻松地管理其系统上的软件(程序包)。依赖关系和先决条件是自动管理的。rpm包由程序文件,配置文件和依赖关系列表(前提条件)组成。所有软件包信息都存储在数据库中,该数据库跟踪系统上已安装的所有文件和软件包。使用rpm命令安装软件包时,信息将添加到数据库中。同样,删除软件包时,将查询数据库的已知依赖关系。

RPM命名约定

与大多数包装系统一样,RPM对包装命名约定有基本概述:

RPM软件包名称具有四个关键字段,可帮助从视觉上识别软件包。

rpm软件包示例htop-0.8.3-1.el6.rf.i686.rpm

名称
RPM软件包名称通常简短且具有描述性。在名称中使用多个单词的地方,它们之间用连字符-隔开。

版本
每个软件包都应有一个版本号,此版本号应与软件包的内容相同。大多数版本信息都是数字格式。通常,编号遵循以下模式: major.minor.patchlevel

修订版
这是软件包的发行版号。

架构
rpm软件包包含通常已为特定平台编译的程序。常见的标识符参考是:i386,用于具有Intel 80386处理器的较早PC。适用于更新的x86 PC的i686。您可能还会看到包含术语noarch的软件包,这些软件包可以安装在任何平台上。

rpm命令的功能可以分为几个部分。每个部分处理不同的功能。命令可以用传统的方式输入一个破折号,也可以用两个破折号:

rpm-安装模式

语法

rpm -i [选项] 
rpm --install [选项] 

rpm -U [选项] 
rpm-升级[选项] 

rpm -e [选项] 
rpm-卸载[选项] 

rpm -q [选项] 
rpm- -query [选项] 

rpm -V [选项] 
rpm --verify [选项]

rpm安装选项

--force
--force选项允许您替换现有的包,哪怕你要替换的包版本比现在的还要旧。

--hash
此选项在安装过程中显示哈希作为进度指示器。您可以将-h指定为简化版本。经常使用带有`RPM -ihv 软件包名有详细的安装信息一起给人一种散列安装进度条。

--nodeps
这个标志让你不检查任何依赖安装包。如果可能的话,你应该避免使用此标志。

--test
这-v是一个有用的参数,因为它允许您模拟安装并验证它在实际安装时是否可以正常工作。

-v
此标志设置详细选项,以在安装软件包时显示软件包名称。

-vv
-vv标志将输出设置为非常详细。如果您在安装软件包时遇到问题,则很有用。该标志通常与--test标志结合使用。

RPM安装示例

CentOS 如何安装软件包

安装软件包语法:rpm -i packagename

[root@centos Downloads]# rpm -ihv htop-0.8.3-1.el6.rf.i686.rpm
warning: htop-0.8.3-1.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key
ID 6b8d79e6: NOKEY
Preparing...                ########################################### [100%]
   1:htop                   ########################################### [100%]

CentOS 如何卸载软件包

删除软件包语法:rpm -e packagename

[root@centos Downloads]# rpm -qa htop
htop-0.8.3-1.el6.rf.i686
[root@centos Downloads]# rpm -e htop-0.8.3-1.el6.rf.i686
[root@centos Downloads]# rpm -qa htop
[root@centos Downloads]# 

首先查询软件包htop,然后使用rpm -e htop-0.8.3-1.el6.rf.i686命令将其删除。然后,我们通过执行rpm -qa htop命令来检查文件是否已删除。

升级软件包语法:rpm -U packagename

[root@centos Downloads]# rpm -Uhv htop-0.8.3-1.el6.rf.i686.rpm
warning: htop-0.8.3-1.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key
ID 6b8d79e6: NOKEY
Preparing...                ########################################### [100%]
   1:htop                   ########################################### [100%]

上面的升级示例将安装软件包htop-0.8.3-1.el6.rf.i686.rpm,如果存在较旧的版本,则将对其进行升级。如果不存在任何版本,则安装该软件包。

查询安装包

基本语法:

rpm -q [选项]

rpm查询选项

-a
列出系统上安装的所有软件包。您也可以使用--all的语法作为替代。

-f
显示包含特定文件的软件包。也可以使用--file的语法。

-p
查询软件包文件

-c
列出配置文件。您也可以使用--configfiles作为替代。

-d
列出文档文件。您也可以使用--docfiles作为替代。

-i
用于显示有关已安装软件包的信息。

-l
列出软件包中包含的文件。

-R
列出软件包的依赖关系。

查询系统上的所有软件包:rpm -qa

[root@centos Downloads]# rpm -qa
python-slip-gtk-0.2.20-1.el6_2.noarch
NetworkManager-0.8.1-43.el6.i686
gmp-4.3.1-7.el6_2.2.i686
sane-backends-libs-gphoto2-1.0.21-3.el6.i686
libtevent-0.9.17-1.el6.i686
dejavu-fonts-common-2.30-2.el6.noarch
gvfs-smb-1.4.3-15.el6.i686
qt-4.6.2-25.el6.i686
khmeros-fonts-common-5.0-9.el6.noarch
gnome-python2-canvas-2.28.0-3.el6.i686
biosdevname-0.4.1-3.el6.i686
libpcap-1.0.0-6.20091201git117cb5.el6.i686
libXext-1.3.1-2.el6.i686
mythes-en-3.0-6.el6.noarch
gnome-panel-2.30.2-14.el6.i686

在上面的示例中,我们执行了rpm -qa命令来查询系统上的所有软件包。

查找单个软件包:rpm -qa | grep 软件包名称

[root@centos Downloads]# rpm -qa | grep htop
htop-0.8.3-1.el6.rf.i686

显示软件包信息:rpm -qpi 软件包名称

[root@centos Downloads]# rpm -qpi htop-0.8.3-1.el6.rf.i686.rpm
warning: htop-0.8.3-1.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key
ID 6b8d79e6: NOKEY
Name        : htop                         Relocations: (not
relocatable)
Version     : 0.8.3                             Vendor: Dag Apt
Repository, http://dag.wieers.com/apt/
Release     : 1.el6.rf                      Build Date: Thu 11 Nov 2010
11:26:57 PM GMT
Install Date: (not installed)               Build Host:
lisse.hasselt.wieers.com
Group       : Applications/System           Source RPM:
htop-0.8.3-1.el6.rf.src.rpm
Size        : 166940                           License: GPL
Signature   : DSA/SHA1, Fri 12 Nov 2010 03:53:54 AM GMT, Key ID
a20e52146b8d79e6
Packager    : Dag Wieers 
URL         : http://htop.sourceforge.net/
Summary     : Interactive process viewer
Description :
htop is an interactive process viewer for Linux.

在上面的示例中,我们使用rpm -qpi htop-0.8.3-1.el6.rf.i686.rpm命令来查询软件包中的信息。

列出软件包中的文件:rpm -qlp 软件包名称

如何列出rpm包中的文件

[root@centos Downloads]# rpm -qlp htop-0.8.3-1.el6.rf.i686.rpm
warning: htop-0.8.3-1.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key
ID 6b8d79e6: NOKEY
/usr/bin/htop
/usr/share/applications/htop.desktop
/usr/share/doc/htop-0.8.3
/usr/share/doc/htop-0.8.3/AUTHORS
/usr/share/doc/htop-0.8.3/COPYING
/usr/share/doc/htop-0.8.3/ChangeLog
/usr/share/doc/htop-0.8.3/INSTALL
/usr/share/doc/htop-0.8.3/NEWS
/usr/share/doc/htop-0.8.3/README
/usr/share/man/man1/htop.1.gz
/usr/share/pixmaps/htop.png

上面的示例显示了如何列出包中包含的所有文件。

列出已安装软件包中的文件:rpm -ql htop

[root@centos Downloads]# rpm -ql htop
/usr/bin/htop
/usr/share/applications/htop.desktop
/usr/share/doc/htop-0.8.3
/usr/share/doc/htop-0.8.3/AUTHORS
/usr/share/doc/htop-0.8.3/COPYING
/usr/share/doc/htop-0.8.3/ChangeLog
/usr/share/doc/htop-0.8.3/INSTALL
/usr/share/doc/htop-0.8.3/NEWS
/usr/share/doc/htop-0.8.3/README
/usr/share/man/man1/htop.1.gz
/usr/share/pixmaps/htop.png

上面的示例列出了已安装的软件包htop中的所有文件

如何找出一个命令属于哪个包 rpm -qf /bin/bash

linux如何查找哪个包拥有该命令

[root@centos Downloads]# rpm -qf /bin/bash