【Linux】RPM软件管理程序


1 RPM简介

RPM全称为RedHat Package Manager,是Red Hat这家公司开发出来的软件管理程序,类似Windows系统下的程序与功能,实现程序的安装、升级、卸载、查询、校验等功能。当然除了Redhat的RPM程序包管理器之外,还有debian的dpt、S.u.S.E的rpm、Gentoo的ports等。其中,程序包的安装可以从下图来简单理解:

源代码
目标二进制文件格式
组织成为一个或有限几个包文件

2 RPM包命名格式

RPM包格式:
name-VERSION-release.arch.rpm
比如:ftp-0.17-54.el6.x86_64.rpm
ftp:软件名称
0.17:软件的版本号
54:软件的编译次数
x86:适合的硬件平台
rpm:软件包的扩展名


3 rpm命令

rpm类型的软件管理工具为rpm命令,可以用来安装、升级、卸载、查询、校验rpm类型的软件。


3.1 安装

安装:安装时常用的选项组合为-ivh,-ivvh

rpm {-i|install} [install-options] PACKAGE_FILE...
[install-options]:
	-h:hash,以#号表示安装进度,每个#号代表2%的进度
	-v,--verbose:显示安装过程中的详细信息
	-vv:显示调试信息
	--test:不执行真正的安装过程,而仅报告依赖关系及冲突信息等
	--nodeps:忽略依赖关系,副作用是能安装成功,但未必能运行成功
	--replacepkgs:覆盖安装--重新安装并覆盖原有的文件
	--force:强制安装	

3.2 升级

升级:升级时常用选项组和-Uvh,-Fvh

rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
	-U:安装或升级
rpm {-F|--freshen} [install-options] PACKAGE_FILE...
	-F:升级
	
[install-options]:
	--test:不执行真正的安装过程,而仅报告依赖关系及冲突信息等
	--nodeps:忽略依赖关系,副作用是能安装成功,但未必能运行成功
	--oldpackage:降级到旧版本

注意:
<1> 最好不要对内核执行升级,Linux允许多内核共存,可以直接安装多个不同版本内核。
<2> 如果程序包的配置文件安装后曾被修改,升级时,新版本的文件不会覆盖老版本的配置文件,而把新版本的配置文件重命名(加后缀.rpmnew)后保存。


3.3 卸载

卸载:卸载已经安装的包

rpm {-e|erase} [--allmatches] [--nodeps] [--test] PACKAGE_NAME...
	简单用法:rpm -e PACKAGE_NAME
	--nodeps:忽略依赖关系
	--test:测试卸载,dry-run模式
	--allmatches:如果一个程序包同时安装多个版本,则此选项一次全部卸载之

注意:如果程序包的配置文件安装后曾被修改,卸载时,此文件通常不会被删除,而是被重命名(加后缀,rpmsave)后保存


3.4 查询

查询:查询某包是否已经安装,以及检查安装所有的包,还可以查看某包的详细信息

rpm {-q|--query} [select-options] [query-options]
[select-options]:
	1.查询某包或某些包是否安装
		rpm -q PACKAGE_NAME
	2.查询已安装的所有包
		rpm -qa
	3.查询某文件是由哪个包安装生成
		rpm-qf /PATH/TO/SOMEFILE
	4.查询尚未安装的包文件的相关信息,使用-p选项
		rpm -qpi PACKAGE_FILE

[query-options]:
	1.查询某包的简要说明信息
		rpm -qi PACKAGE_NAME
	2.查询某包安装生成的文件列表
		rpm -ql PACKAGE_NAME
	3.查询某包安装完成后生成的所有配置文件
		rpm -qc PACKAGE_NAME
	4.查询某包安装完成后生成的所有帮助文件
		rpm -qd PACKAGE_NAME
	5.查看某包制作时随版本变化的changelog信息
		rpm -q --changelog PACKAGE_NAME
	6.查询某包提供的capabilities
		rpm -q --provides PACKAGE_NAME
	7.查询某包所依赖的的capabilities
		rpm -q --requires PACKAGE_NAME
	8.查询某包安装或卸载时执行脚本
		rpm -q --scripts PACKAGE_NAME
		脚本有四类:
			preinstall:安装过程开始之前执行的脚本
			postinstall:安装过程完成之后执行的脚本
			preuntinstall:卸载开始之前执行的脚本
			postuninstall:卸载过程完成之后执行的脚本	

3.5 校验

校验:查询包安装之后生成的文件是否发生了改变
rpm {-V|--verify} [select-options] [verify-options]
常见用法:rpm -V PACKAGE_NAME

当没有输出结果时表示软件包完整,当有相应的结果输出表明对应的内容有修改,具体如下:

S:(file Size differs)文件的容量大小是否被改变
M:(Mode differs)文件的类型或文件的属性(rwx)是否被改变,如是否可运行等参数已被改变
5:(MD5 sum differs)MD5这一种指纹码的内容已经不同
D:(Device major/minor number mis-match)装置的主/次代码已经改变
L:(readLink(2) path mis-match)Link路径已被改变
U:(User ownership differs)文件的所属人已被改变
G:(Group ownership differs)文件的所属群组已被改变
T:(mTime differs)文件的创建时间已被改变
P:capabilities differ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值