RPM是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎,逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。
程序使用常见有几个步骤:安装、查询、卸载、升级、校验、数据库重建、验证数据包等
rpm命名:
组成部分
主包:bind-9.7.1-1.el5.i586.rpm
子包:bind-libs-9.7.1-1.el5.i586.rpm bind-utils-9.7.1-1.el5.i586.rpm
命名格式:name-version-release.arch.rpm bind-major.minor.release-release.arch.rpm
主版本号:重大改进 次版本号:某个子功能发生重大变化 发行号:修正了部分bug,调整了部分功能
1、安装
rpm -i /PATH/TO/PACKAGE_FILE
-h:以#显示进度,每个#表示2%;
-v:显示详细过程
-vv:显示更详细过程
rpm -ivh /PATH/TO/PACKAGE_FILE
--nodeps:忽略依赖关系;
--replacepkgs:重新安装,替换原有安装;
--force:强行安装,可以实现重装或降级;
2、查询
rpm -q PACKAGE_NAME:查询指定包是否已安装
-qa:查询已安装的所有包
-qi PACKAGE_NAME:查询指定包的说明信息;
-ql PACKAGE_NAME:查询指定包安装后生成的文件;
-qc PACKAGE_NAME:查询指定包安装的配置文件;
-qd PACKAGE_NAME:查询指定包安装的帮助文件;
-q --scripts PACKAGE_NAME:查询指定包中包含的脚本;
-qf /path/to/somefile :查询指定文件是由哪个rpm包安装生成的;
如果某rpm包尚未安装,我们需查询其说明信息、安装以后生成的文件:
rpm -qpl /PATH/TO/PACKAGE_FILE
3、升级
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本,则升级,否则,安装;
-Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本则升级,否则,退出;
--oldpackage:降级
4、卸载
rpm -e PACKAGE_NAME
--nodeps:忽略依赖关系
5、校验
rpm -V PACKAGE_NAME
6、重建数据库
rpm -- rebuilddb:重建数据库,一定会重建
--initdb:初始化数据库,如果没有则建立,有就不用
7、检验来源合法性,及软件包完整性
rpm -K /PATH/TO/PACKAGE_FILE
dsa,gpg:验证来源合法性,即验证签名;可用--nosignature 略过此项验证
sha1,md5:验证包完整性:可用--nodigest 略过此项验证