rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
RPM 有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证。
软件包的组成部分:
二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
库文件:/lib, /usr/lib, /usr/local/lib
配置文件:/etc
帮助文件:手册, README, INSTALL (/usr/share/doc/)
RPM: RPM is Package Manager
源程序:name-version.tar.{gz|bz2|xz}
版本号:major.minor.release
bash-4.3.1.tar.xz
包名-主版本号-次版本号-发行号
rpm包:name-version-release.arch.rpm(有源程序的rpm包和二进制的rpm包)
Rpm包的发行号(release):跟源程序不同,用于标识rpm包本身的发行号,同时包含所适用的操作系统
el6: rhel6
CentOS6:
el5
suse11
arch: 主机平台
cpu架构:i686、x86_64、amd64、ppc、noarch。。。
bash-4.3.2-5.el6.x86_64.rpm
包名-主版本号.次版本号.源程序发行号-rpm包的发行号.主机平台.cup架构
Rpm包有主包和分包之分
Bind 单个包
bind-devel 主包–分包
rpm包有验正机制:来源的合法性、软件包的完整性。必须导入了官方提供的公钥,才可以验证。
Linux系统自带的公钥一般放在/etc/pki/rpm-gpg/下,后缀为release的就是公钥,没有这个公钥,那个后缀为系统名加版本号的就是公钥了。
验证rpm合法性和完整性的命令:
rpm
-K
–checksig 与-K用法相同
–nosignature 不检测合法性
–nodigest 不检测完整性
Rpm包的安装:
rpm -i /PATH/TO/RPM_FILE
-i|–install
-v, -vv, -vvv越多越详细
-h: 以#显示安装进度,一个#表示2%的进度;
-ivh 组合写法
忽略依赖关系:
–nodeps
测试安装:
–test
重新安装:
–replacepkgs
warning: /etc/sysconfig/named created as /etc/sysconfig/named.rpmnew(安装的时候不会覆盖,创建了一个新的文件)
卸载:rpm -e 包名
–nodeps
warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave(删除时保留副本)
查询:rpm -q|–query 包名
查询所有已经安装包:
rpm -qa
rpm -qa | grep ‘pattern’
查询包的摘要信息:
rpm -qi 包名
查询包安装生成的文件清单:
rpm -ql 包名
查询包安装生成的配置文件:
rpm -qc 包名
查询包安装生成的帮助文档:
rpm -qd 包名
查询包相关的脚本:
rpm -q –scripts 包名
查询文件是哪个包安装生成的
rpm -qf /path
preinstall: 安装前脚本
postinstall: 安装后脚本
preuninstall: 卸载前脚本
postuninstall: 卸载后脚本
查询尚未安装的包的相关信息:与查看安装包信息相似。
rpm -qpi /path/to/rpm_file
-i
-l
-d
-c
–scripts
升级:
-U: 升级+安装
-F:升级
-Uvh
-Fvh
–force 强制升级
–nodeps 忽略依赖关系
注意:内核不应该升级,应该尽可能安装,它允许多版本并存;
校验包的内容是否改变:rpm -V 包名
rpm -K 校验包的完整性合法性
rpm包的数据库:
/var/lib/rpm
数据库重建:
–initdb: 新建
–rebuilddb: 重建
源码格式的rpm包:
打包过程是根据spec文件来完成的,spec文件打包的时候所依赖的源程序包以及补丁都提供出来,只不过没有提供二进制格式,我们要做的只是使用命令将源码格式的rpm包制作成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