感谢支持
我们一直在努力

CentOS软件包管理之RPM

很多人最识Linux的时候,搞不明白什么是软件包管理系统,其实,linux下的软件包管理系统就是在电脑中自动安装、配置、卸载和升级软件包的工具组合,有点类似于windows下的控制面板。

在Linux发行版中,几乎每一个发行版都有自己的软件包管理系统。常见的有deb软件包的dpkg以及它的前端apt(适用于debian、Ubuntu等)。rpm以及它的前端yum(适用于RedHat系列的系统)。

RPM,全称RPM Package Manager,是由Red Hat推出的软件包管理系统,现在在各种发行版中普遍适用。

RRM软件包是将程序源代码经过编译和封装以后形成的包文件,在软件包里面会封装软件的二进制程序、配置文件、帮助手册、库文件以及头文件等。RPM包的结构如下图所示:

CentOS软件包管理之RPM

RPM软件包的安装与卸载:
# rpm [options] /path/to/rpmfile

option:
-i|–install:安装指定软件
-v|–verbose:显示安装过程
-e|–erase:卸载指定的软件
-h|–hash:以#的方式显示安装进度条,一个#为2%
–nodeps:忽略依赖关系
–test:测试安装
-U:升级+安装(如果之前有安装则升级,如果之前没有安装则安装)
-F:升级(如果之前有安装则升级,如果之前没安装则不做任何操作)
–replacepkgs:重新安装软件包
–force:在软件包的安装或升级过程中,如果出现某个文件已经安装或者某一个软件已经安装时
可以使用–force选项强制安装,等同于–replacepkgs –replacefiles –oldpackage同时使用

常用的软件包安装选项为:
#rpm -ivh /path/to/rpmfile
# rpm -Uvh /path/to/rpmfile

示例 1:

CentOS软件包管理之RPM

RPM软件包验证:
RPM包使用gpg非对称加密机制,可以验证包的完整性和来源的合法性。
# rpm –import PUBKEY:rpm使用–import导入软件包提供者制作的公钥,可以自动进行软件包的验证
#rpm {-K|–checksig}  [–nosignature] [–nodigest] PACKAGE_FILE:rpm可以使用-K或–checksig选项对软件包进行来源和完整性的验证,–nosignature选项是指不进行来源合法性验证,–nodigest选项是指不进行完整性验证

示例 2:

CentOS软件包管理之RPM

相关阅读:

制作自己的rpm包 http://www.linuxidc.com/Linux/2013-06/86435.htm

Linux 下rpm安装后的目录结构和一些配置 http://www.linuxidc.com/Linux/2013-06/85761.htm

rpm与yum的综合性介绍与示例演示 http://www.linuxidc.com/Linux/2013-05/84480.htm

Redhat Linux—rpm 命令详解 http://www.linuxidc.com/Linux/2013-03/81971.htm

RPM查询:
# rpm {-q|–query} [select-options] [query-options] [PACKAGE_NAME|PACKAGE_FILE]

常用select-option:
-a|–all:将已安装的所有包显示在屏幕上(Query all installed packages )
# rpm -qa
-f|–file FILE:根据指定的文件显示出该文件由哪一个包生成(Query package owning FILE)
-p|–package PACKAGE_FILE:根据指定的软件包文件,搭配query-option选项可查询未安装的包信息。

常用query-option:
-l|–list:列出该软件包安装后需要生成的所有文件( List files in package)
-i|–info:显示软件包的信息,包括名称、版本和描述
(Display package information, including name, version and description)
-c|–configfiles:仅显示-l选项列出文件中的配置文件(List only configuration files (implies -l))
-d|–docfiles:仅显示-l选项列出文件中的文档或帮助手册(List only documentation files (implies -l))
–scripts:显示该软件包在安装或卸载前后需要运行的脚本
(List the package specific scriptlet(s) that are used as part of the installation and uninstallation
processes)

示例 3:

CentOS软件包管理之RPMCentOS软件包管理之RPMCentOS软件包管理之RPMCentOS软件包管理之RPMCentOS软件包管理之RPMCentOS软件包管理之RPM

 

 

 

 

RPM校验:
RPM还提供了对软件包生成的文件进行校验的功能(可针对文件大小、权限、MD5、修改时间等进行校验),当没有任何改变时候,显示9个’-‘,如果某一项发生改变则在相应位显示标识符,各标识符代表含义如下:
S文件大小发送改变(file Size differs)
M文件权限发生改变(Mode differs (includes permissions and file type))
5文件MD5值发送改变(digest (formerly MD5 sum) differs)
D装置的主/次代码发生改变(Device major/minor number mismatch)
L 路径发生改变(readLink(2) path mismatch)
U属主发生改变(User ownership differs)
G属组发生改变(Group ownership differs)
T修改时间发生改变(mTime differs)
P能力发生改变(caPabilities differ)

# rpm {-V|–verify} PAKCAGE_NAME

示例 4:

CentOS软件包管理之RPM

备注:这个是我在/etc/lftp.conf文件末尾新增了一行后的校验结果

RPM包数据库:
RPM软件包有一个本地的数据库(在/var/lib/rpm目录下),RPM包的安装、升级和删除都会更新数据库的信息。但是当数据库损坏之后,软件包的更新卸载就会出现错误。现在只需要将数据库重建就可以解决问题,如下图所示:

示例 5:

CentOS软件包管理之RPM

更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

赞(0) 打赏
转载请注明出处:服务器评测 » CentOS软件包管理之RPM
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏