rpm包安装详解

rpm包:
rpm命令:
(1)rpm:
数据库在/var/lib/rpm下
(2)rpmbuild
rpm功能:
安装,查询,卸载,升级,校验,数据库的重建,验证数据等工作

rpm命名:
包:组成部分
主包:bind-9.7.1-1.i586.el5.rpm
子包:bind-libs-9.7.1-1.i586.el5.rpm
bind-utils-9.7.1-1.i586.el5.rpm
包名格式:
name-version-release.arch.rpm
bind-major.minor.release-release.arch.rpm
(第一个release是制作者的发行号,第二个release是下载之后改良之后的发行号)
比如下面的例子,第一个1是发行者的修正号,第二个1是修改者的修正号:
bind-9.7.1-1.noarch.rpm(既可以在32位平台上运行,又可以在64位平台上运行。表示跟平台没有关系,什么平台上安装都可以运行)
bind-9.7.1-1.ppc.rpm(这表明在powerPC平台上运行)

总结:
(1)name-version-release.arch
(版本号,发行号,平台)
(2)版本号又可以分为主版本号(mahor)和次版本号(minor)
(3)主版本号:重大改进
次版本号:某个子功能发生重大改变
发行号(又叫修正号):修改了部分bug,调整了一点功能

rpm包分类:
两种格式:
(1)二进制格式:已经编译好的
(2)源码格式:未编译的

各有优劣:
(1)二进制格式已经编译好,简便快捷
(2)源码格式需要在自己的主机上编译,能够更好地依赖主机的硬件性能

下面主要讲二进制格式的rpm包:
rpm包作者下载源程序,编译配置完成后,制作出rpm包

1.安装:
rpm -i 路径/包文件
-h:以#显示进度,每个#表示2%
-v:显示详细过程
-vv:显示更加详细的过程
–nodeps:忽略依赖关系
–replacepkgs:重新安装,替换原有安装
–oldpackage:降级,就是升级了新版本之后发现跟其他软件包有冲突然后做降级处理
–force:强制安装,可以实现重装或者降级
(’–’表示二级参数)

常用选项:-ivh

2.查询
rpm -q 包名(不是文件,文件是以.rpm结尾) ==》注:上面包名格式中的name字段就是包名
例如:
zsh-4.2.6-6.el5.i386.rpm ==》这是包文件
zsh ==>这才是包名

===包名
-q:查询指定的包是否已经安装
-qa:查询已经安装的所有包(其后不需要指定包名)
-qi:查询指定包的说明信息(比如说rpm包的功能,什么时候安装的,谁制作的,rpm包的大小等等)
-ql:查询指定包安装后生成的文件列表
-qc:查询指定包安装的配置文件
-qd:查询指定包安装的帮助文件
-q –script:查询指定包中包含的脚本(包含四类脚本:安装前,安装后,卸载前,卸载后)

===文件名
-qf 路径/文件名:查询指定的文件是由哪个rpm包生成的

注意:
如果某rpm包尚未安装而我们需要查询其说明信息、安装后会产生的文件等:(在-p参数就可以)
rpm -qpi 路径/包文件(包文件跟文件名又不一样)
rpm -qpl 路径/包文件
rpm -qpc 路径/包文件
rpm -qpd 路径/包文件

3.升级
rpm -Uvh 路径/新的包文件 #如果装有老版本的,则升级;否则,则安装
rpm -Fvh 路径/新的包文件 #如果装有老版本的,则升级;否则,则退出
–oldpackage:降级

4.卸载
rpm -e 包名
–nodeps 忽略依赖关系

5.校验
rpm -V 包名

6.重建数据库:
rpm的数据库在:/var/lib/rpm下
rpm
–rebuild:重建数据库。一定会重新建立,不管有还是没有
–initdb:初始化数据库。没有才建立,有就不用建立

7.检验来源合法性及软件完整性
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release(先导入密钥,不然运行下一步-K会报错)
rpm -K 包文件
dsa,gpg:验证来源合法性,也就是验证签名,可以使用–nosignature,略过此项
sha1,md5:验证软件包完整性,可以使用–nodigest,略过此项