RPM软件包管理器
RPM-红帽软件包管理器
rpm
Red 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