一) 什么是RPM?node
Redhat Package Manager的简称,就是包管理工具,它是linux中使用安装最简便的一种包管理工具。linux
rpm 执行安装包有两种:
二进制包(Binary):二进制包能够直接安装在计算机中安全
源代码包(Source):源代码包将会由RPM自动编译、安装。源代码包常常以src.rpm做为后缀架构
rpm包管理通常由如下几个内容组成:即,安装 查询 卸载 升级 校验 库重建等组成。ide
rpm包的名称通常由包名、版本、子版本以及所支持的架构名这基本分组成工具
咱们先来看下man rpm测试
二) RPM命令的使用总结: ui
1) 安装程序包:rpm [选项] 文件路径spa
经常使用选项 -i : 安装文件
3d
-v:: 查看附加信息
-vv: 显示调试信息
-h::安装时输出hash记号
--test:仅用做测试,并不实际安装。
一般的状况下,-ivh 一块儿使用,这样可以比较清楚的显示安装的文件信息。
有的状况须要从新安装,怎么安装呢?
rpm --replacepkgs 文件路径
从新安装时,若是原有的配置文件被修改了,则颇有可能不执行替换, 而是将应该安装生成的配置文件重命名为 .rpmnew
2)查询操做:我以gcc包为例
查询全部已经安装的包: rpm -qa
gcc 是包名,4.4.7是版本号,4.e16是小版本号,x86_64是架构
查询某个包是否被安装: rpm -q 包名
查询某个包的描述信息: rpm -qi 包名
查询某个包生成了那些配置文件: rpm -qc 包名
查询某个包生成了那些帮助文件: rpm -qd 包名
查询与莫个包相关的脚本: rpm -q --scripts 包名
查询某个文件是由哪一个包生成的: rpm -qf 文件路径
3)卸载程序包
rpm -e [选项] 包名
选项有:
--test 只执行删除的测试
--noscripts 不运行预安装和后安装脚本程序
--nodeps 不检查依赖性
没有加选项 --nodeps 意味着,连同与该包有依赖关系的包一同卸载
4)升级程序包
rpm [选项] 包的路经
升级或安装 -Uvh
纯升级 -Fvh
-F 是强制升级的意思 -v -h 和前面的安装选项同样
5)校验操做,校验的目的就是查询包安装生成的文件属性是否发生改变。
rpm -V 包名
选项有:
S: 指示文件大小变动
M: 指示文件权限、文件类型变动
5: 指示MD5值变动
D: 指示主/备设备号变动
L: 指示链接变动
U: 指示属主变动
G: 指示属组变动
T: 指示修改时间变动
其中没有修改的部分用 . 表示
6)包来源合法性与完整性的校验,对于系统安全性相当重要
首先你要导入包制做者的公钥
rpm --import 公钥路径
校验包中的文件:
rpm -K 包文件路径
其中若是不检查包的完整性
rpm -K --nodigest
不检查包的来源合法性
rpm -K --nosignature
--nopgp 不校验PGP签名
7)库重建:首先库重建的默认目录为 /var/lib/rpm
库重建有两种状况:
1 若是原先没有库,则创建一个库,若是有,则不创建新的库,用命令:
rpm --initdb
2无论原先有没有库,都创建一个,有则覆盖,没有则新建,使用命令:
rpm --rebuilddb