一RPM介绍:
1,RPM:是指.rpm的文件格式的软件包,也可能是指其本身的软件包管理器(RPM Package Manager)。最早由Red Hat研制,现在也由开源社区开发。RPM通常随附于Linux发行版,但也有单独将RPM作为应用软件发行的发行版(例如Gentoo)。RPM仅适用于安装用RPM来打包的软件,目前是GNU/Linux下软件包资源最丰富的软件包类型之一。
2,包管理器的基本功能:
安装、卸载、升级和管理软件
组件查询功能
验证功能
软件包GPG和MD5数字签名的导入、验证和发布
软件包依赖处理
选择安装
网络远程安装功能
3,rpm包命名格式: name-version-release.arch.rpm
name: 软件包名
version: 软件的版本号
release:rpm自身的发行号,与程序源码的发行号无关,仅用于标识对 rpm包不同制作的修订;release还包含此包适用的OS
arch:适用于的硬件平台,主要有:i386, i486, i586, i686,x86_64,powerpc,noarch
4,RPM分包管理:一个软件可能会包含许多功能,针对不同的用户按照功能进行分包,是用户免于下载安装不需要的功能模块.一般是有一个主包,提供基本功能;其他功能分别打包成不同的支包文件来使用。常见的包有
5,来源合法性验正:
源程序:通过md5或sha1校验码验正;
rpm包:发行商提供的合法性是可信的
6,获取rpm包的途径:
发行商的光盘或站点服务器
以CentOS为例:
http://mirrors.163.com
http://mirrors.sohu.com
http://mirrors.hust.edu.cn
http://rpmfind.net
http://rpm.pbone.net
二,RPM的使用,这里因为rpm的选项较多,所以按照功能进行大致的分类
rpm [option] /path/to/package
1,rpm包管理安装:
-i, --install 使用格式:# rpm -i /path/to/rpm_package ...
-v: 详细信息 -vv: -vvv:更加详细的信息
-h: hash, 以#的个数显示安装进度,一个#表示2%的进度;
--test:仅测试,不真正执行安装过程
--nodeps: 忽略依赖关系
--replacepkgs:重新安装: 原来的配置文件不会被覆盖,新安装的配置文件将会重命名为以.rpmnew为后缀的文件;
2,rpm包管理卸载:
-e, --erase:卸载
如果卸载被其它程序所依赖的包:
(1)、把依赖者一同卸载;
(2)、忽略依赖关系;--nodeps
(3)、不再卸载
3,软件包管理升级
rpm {-Uvh|-Fvh} /path/to/package_file
(1),升级或安装
-Uvh:如果软件包不存在则安装,如果存在则升级。
(2),升级
-Fvh:如果软件包不存在则什么都不干,如果存在则升级。
(3),强制升级
--force: 如果有时候升级有问题,则可以使用
注意:不应该对内核执行升级操作,而是安装。因为系统允许多内核并存,所以万一升级失败,还可保证系统不出现问题。
4,rpm包管理查询: -q
-qa: 查询所有已经安装的包
-qi: 查询包的描述信息:rpm -qi package_name
-ql: 查询包安装之后在当前系统生成文件列表:rpm -ql package_name
-qf: 查询某文件是哪个包安装生成的:rpm -qf /path/to/somefile
-qd: 查询包安装后生成的帮助文档:rpm -qd package_name
-qc: 查询包安装后生成的配置文件:rpm -qc package_name
--scripts: 查询包相关的脚本:rpm -q --scripts package_name
脚本有四类:
preinstall: 安装前脚本
postinstall: 安装后脚本
preuninstall: 卸载前脚本
postuninstall: 卸载后脚本
-p: 对未安装的文件进行查询
-qpl: 查询安装后会生成的文件列表:rpm -qpl /path/to/package_file
-qpi: 查询其简单描述信息:rpm -qpi /path/to/package_file
5,rpm包管理:校验
检查包安装后生成的文件是否被修改过;
rpm -V package_name
常见属性如下:如果某属性无变化,则显示为.
S file Size differs 大小
M Mode differs (includes permissions and file type) 权限
5 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 提供的能力
6,rpm包管理:检验来源合法性和软件包完整性
包完整性:通过单向加密机制(md5|sha1)
来源合法性:通过公钥加密机制(RSA)
导入制作者的公钥,CentOS发行版的公钥在iso文件中;
--import:导入命令:rpm --import /path/to/gpg-key-file
rpm -qa gpg-pubkey* 显示所有已经导入的gpg格式的公钥
rpm -qi gpg-pubkey-NAME 显示公钥的详细信息
-K:检查:rpm -K /path/to/package_file rpm --checksig /path/to/package_file
--nosignature: 不检查来源合法性
--nodigest: 不检查完整性
7,rpm包管理:数据库重建
数据库:/var/lib/rpm/
重建:
rpm --initdb: 初始化 如果事先不存在一个数据库,则新建之;
rpm --rebuilddb: 重建 直接重建数据库,会覆盖原有的库;