当前位置: > CentOS > CentOS入门 >

CentOS/使用RPM管理包

时间:2015-01-19 02:27来源:linux.it.net.cn 作者:IT
  • 1 RPM概述
  • 2 为什么使用RPM
  • 3 RPM的功能
  • 4 RPM包的名称格式
  • 5 rpm命令的使用
    • 5.1 rpm命令简介
    • 5.2 rpm命令使用举例
  • 6 参考来源
  • 7 CentOS使用手册导航
 

RPM概述

RPM是一个开放的软件包管理系统,最初的全称是Red Hat Package Manager。它工作于Red Hat Linux以及其它Linux系统,成为了Linux中公认的软件包管理标准。红帽子软件公司鼓励其他厂商来了解RPM并在自己的产品中使用它。

RPM的发布基于GPL协议。随着RPM在各种发行版本的广泛使用,如今RPM的全称是RPM Package Manager。RPM由RPM社区负责维护,其官方网站:http://www.rpm .org

为什么使用RPM

使用RPM最大的好处在于它提供快速之安装,减少编译安装之侦错困扰。对于最终用户来说,RPM所提供的众多功能使维护系统要比以往容易的多。安装、卸载和升级RPM软件包均只需一条命令即可完成,所有烦琐的细节问题无须您费心。RPM维护一个所有已安装的软件包和文件的数据库,可以让您进行功能强大的软件包查询和验证工作。

在软件包升级过程中,RPM会对配置文件进行特别处理,因此您绝对不会丢失以往的定制信息——这对于直接使用.tar.gz文件是不可能的。对于程序员,RPM可以让您连同软件的源代码打包成源代码和二进制软件包供最终用户使用。这个过程十分简单,整个过程由一个主文件和可能的补丁程序组成。RPM在软件的新版本发布时,这种“原始”源代码,补丁程序和软件生成指令的清晰描述简化了软件包的维护工作。

RPM的功能

简言之,RPM具有如下五大功能:

  • 安装——将软件从包中解出来,并且安装到硬盘。
  • 卸载——将软件从硬盘清除。
  • 升级——替换软件的旧版本。
  • 查询——查询软件包的信息。
  • 验证——检验系统中的软件与包中软件的区别。

RPM包的名称格式

RPM包的名称有其特有的格式,如某软件的RPM包名称由如下部分组成:

name-version.type.rpm

其中:

  • name为软件的名称
  • version为软件的版本号
  • type为包的类型
  • i[3456]86:表示在Intel x86计算机平台上编译的
  • sparc:表示在sparc计算机平台上编译的
  • alpha:表示在alpha计算机平台上编译的
  • src:表示软件源代码
  • rpm 为文件扩展名

例如:

bind-9.2.1-16.i386.rpm:是bind(9.2.1-16)的Intel 386平台编译版本包
bind-9.2.1-16.sparc.rpm:是bind(9.2.1-16)的sparc平台编译版本包
bind-9.2.1-16.alpha.rpm:是bind(9.2.1-16)的alpha平台编译版本包
bind-9.2.1-16.src.rpm:是bind(9.2.1-16)的源代码版本包

因此,看到一个RPM包的文件名之后就可以获得该软件包的大致信息了。

rpm命令的使用

rpm命令简介

在CentOS中升级和安装系统通常使用yum 命令,因为它可以良好的解决包的依赖性问题,即自动安装/处理依赖的其他软件包。但是 rpm 命令还是在某些情况下用得上,比如,查询包信息,安装或卸载一个不在CentOS软件库中的.rpm包等。

常见的用法:

命令 说明
rpm -i <.rpm file name> 安装指定的 .rpm 文件
rpm -U <.rpm file name> 用指定的.rpm文件升级同名包
rpm -e <package-name> 删除指定的软件包
rpm -q <package-name> 查询指定的软件包在系统中是否安装
rpm -qa 查询系统中安装的所有RPM软件包
rpm -qf </path/to/file> 查询系统中指定文件所属的软件包
rpm -qi <package-name> 查询一个已安装软件包的描述信息
rpm -ql <package-name> 查询一个已安装软件包里所包含的文件
rpm -qc <package-name> 查看一个已安装软件包的配置文件位置
rpm -qpi <.rpm file name> 查询一个未安装的 RPM文件的描述信息
rpm -qpl <.rpm file name> 查询一个未安装的 RPM文件里所包含的文件
rpm -qpc <.rpm file name> 查看一个未安装的 RPM文件的配置文件位置
rpm -qpd <.rpm file name> 查看一个未安装的 RPM文件的文档安装位置
rpm -qpR <.rpm file name> 查询一个未安装的 RPM文件的最低依赖要求
rpm -V <package-name> 校验指定的软件包
rpm -V </path/to/file> 校验包含指定文件的软件包
rpm -Vp <.rpm file name> 校验指定的未安装的 RPM文件
rpm -Va 校验所有已安装的软件包
rpm --rebuilddb 重新创建系统的RPM数据库,用于不能安装和查询的情况
rpm --import <key file> 导入指定的签名文件
rpm -Kv --nosignature <.rpm file name> 检查指定的RPM文件是否已损坏或被恶意篡改(验证包的MD5校验和)
rpm -K <.rpm file name> 检查指定RPM文件的GnuPG签名
rpm -qd <package-name> 查看一个已安装软件包的文档安装位置
rpm -qR <package-name> 查询一个已安装软件包的最低依赖要求
  • 在安装/升级时,还可以使用-vh参数,其中:v表示在安装过程中将显示较详细的信息;h表示显示水平进度条
  • 在使用 rpm -qa 命令时,还可以使用 |more 或 |grep 进行过滤
  • 所有的 <.rpm file nam e > 既可以是本地文件,也可以是远程文件
  • 校验软件包将检查软件包中的所有文件是否与系统中所安装的一致性。包括校验码文件大小,存取权限和属主属性都
  • 将根据数据库进行校验。该操作可在用户安装了新程序以后怀疑某些文件遭到破坏时使用。

rpm命令使用举例

安装软件包:

1、安装本地软件包

# rpm -ivh /media/cdrom/CentOS/elinks-0.11.1-5.1.el5.i386.rpm
Preparing... #
1:elinks #

2、安装远程软件包

# rpm -ivh http://centos.candishosting.com.cn/5/os/i386/CentOS/elinks-0.11.1-5.1.el5.i386.rpm
Preparing... #
1:elinks #

3、安装不在CentOS软件库中的软件包

下面以安装Fedora Extras 中的软件包为例。

# rpm --import http://download.fedora.redhat.com/pub/fedora/linux/extras/RPM-GPG-KEY-Fedora-Extras
# wget http://download.fedora.redhat.com/pub/fedora/linux/extras/6/i386/darcs-1.0.9-3.fc6.i386.rpm
# rpm -ivh darcs-1.0.9-3.fc6.i386.rpm
Preparing... #
1:darcs #

升级软件包:

1、从本地文件升级软件包:

# rpm -Uvh elinks-0.11.1-5.1.0.1.el5.i386.rpm
Preparing... #
1:elinks #

2、从远程文件升级软件包:

# rpm -Uvh http://centos.candishosting.com.cn/5/updates/i386/RPMS/elinks-0.11.1-5.1.0.1.el5.i386.rpm
Preparing... #
1:elinks #

卸载软件包:

# rpm -e elinks

查询软件包:

# 查询 elinks 软件包在系统中是否安装
$ rpm –q elinks
# 查询系统中已安装的 elinks 软件包的描述信息
$ rpm –qi elinks
# 查询系统中已安装的 elinks 软件包里所包含的文件
$ rpm –ql elinks
# 查询系统中文件 /etc/passwd 所属的软件包
$ rpm –qf /etc/passwd
# 查询 elinks-0.11.1-5.1.0.1.el5.i386.rpm 包文件中的信息
$ rpm –qp elinks-0.11.1-5.1.0.1.el5.i386.rpm
# 查询系统中已经安装的所有包含名字php的软件包
$ rpm –qa | grep php
# 查询 httpd 包的最低依赖要求
$ rpm -qR httpd

验证软件包:

// 验证 elinks 软件包
# rpm –V elinks
// 验证包含文件 /etc/passwd 的软件包
# rpm –Vf /etc/passwd
// 验证 elinks-0.11.1-5.1.0.1.el5.i386.rpm 包文件
# rpm –Vp elinks-0.11.1-5.1.0.1.el5.i386.rpm
// 验证所有已安装的软件包
# rpm –Va

如果校验一切正常,将没有输出,反之则输出不一致结果,格式为:

xxxxxxxx 文件名

字段1由八个字符组成,每个字符指明该文件与RPM数据库中一致或不一致的地方,单个点(.)说明没有异常,具体含义如下:

  • 5 — 校验和
  • S — 文件大小
  • L — 符合连接
  • T — 文件修改时间
  • D — 设备
  • U — 用户
  • G — 组
  • M — 文件模式
  • ? — 文件不可读

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容