# 什么是RPM包 RPM(RedHat Package Manager)一种通过资料库管理的方式将所需要的软件安装到主机上的管理程序. # RPM包的特点 1:事先已经编译好 2:安装方便 3:安装过程中要求环境一致 4:反安装时要从最上层开始 # RPM包的命名规则 示例:bind-9.8.2-0.47.rc1.el6.x86_64.rpm 1.name,如:bind,是软件的名称 2.version,如:9.8.2-0,是软件的版本号,版本号格式通常为“主版本号.次版本号.修正号”。47,是发布版本号,表示这个rpm软件包是第几次编译生成的 3.arch,如i386,是表示包适用的硬件平台,目前rpm支持的平台有:i386,i586,i686,sparc和alpha 4..rpm和.src.rpm,是rpm包类型后缀,rpm是编译好的二进制包,.src.rpm是源码包 5.特殊名称: (1)el*:表示发行商的版本,el6表示这个软件包是在rhel6.x/centos6.x下使用; (2)devel:表示这个rpm包是软件的开发包 (3)noarch:说明这样的软件包可以在任何平台安装和运行,不需要特定的硬件平台 例如 httpd-manual- 2.0.40-21.i386.rpm httpd-manual ----- 软件包名称 2 ----- 主版本号 0 ----- 次版本号 40 ----- 次版本号 21 ----- 编译的次数 i386 ----- 适合的平台 rpm ----- 说明是一个RPM包 # RPM包的安装 RPM包的安装非常简单,只需要执行以下命令: ```shell rpm -ivh 软件包名 ``` 参数说明: -i 安装 -v 显示安装信息 -h 显示安装进度 rpm命令执行安装rpm包和源码包,rpm包以 .rpm 结尾,而源码包以 .src.rpm 结尾 # RPM常用命令 **-ivh** 安装并显示安装进度(规则:rpm –ivh 包名) 示例:rpm –ivh bind-9.8.2-0.47.rc1.el6.x86_64.rpm **-Uvh** 升级软件包(rpm –Uvh 包名 //升级软件包-旧升新,低升高) 示例:rpm –Uvh --oldpackage bind-9.8.2-0.47.rc1.el6.x86_64.rpm(新版本软件包降级为旧版本) **-ql** 列出rpm软件包内的文件信息(显示已安装软件包内容) 示例:rpm –ql vsftpd (规则:rpm –ql 软件名) **-qi** 列出rpm软件包描述信息(显示已安装软件包属性) 示例:rpm –qi bind (规则:rpm –qi 软件名) **-qf** 查看指定文件属于哪个软件包(rpm –qf 文件名) 示例:rpm –qf /etc/rc.d/init.d/named **-Va** 校验所有rpm包,查找丢失的文件 **-e** 删除rpm软件包(rpm –e 包名) 示例:rpm –e bind-9.8.2-0.47.rc1.el6.x86_64.rpm **-qpR** 查看rpm包依赖关系 示例:rpm –qpR 包名 --force 忽略软件包及文件的冲突,即强制安装(长格式命令) --nodeps 忽略软件包的依赖关系(长格式命令) --test 安装测试,并不实际安装(长格式命令) 示例:测试--nodeps和--test,rpm –ivh httpd-2.2.15-53.el6.x86_64.rpm --test 并不安装,测试一下httpd软件包的依赖 **rpm –qa** 查看软件包 其中 –a选项是查询所有已经安装的软件包。 -q是查询一个包是否安装 (显示区别:已经安装的rpm包不会显示后缀.rpm ,而未安装的包则显示后缀.rpm)