安装:

rpm {-i|--install} [install-options] PACKAGE_FILE1...

 -h: hash,以#来表示安装进度;

-v, --verbose:显示安装过程中的详细信息;

 安装时常用的组合: -ivh, -ivvh

   --test:不执行真正的安装过程,而仅报告依赖关系及冲突信息等;

忽略依赖关系:

副作用:能安装成功,但未必能成功运行;

 --nodeps

 覆盖安装:重新安装并覆盖原有的文件

-R

--replacepkgs

 强制安装:

--force

 安装指定用户指定目录

 rpm {--initdb|--rebuilddb} [-v] [--dbpath DIRECTORY] [--root DIRECTORY]

 

升级:

   rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

         -U: 升级或安装

 

   rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

         -F:升级

 

 组合:-Uvh, -Fvh

  --test

 --nodeps

 --force

   --oldpackage:降级到旧版本;

 注意:一定不要对内核执行升级;Linux允许多内核共存,所以,可以直接安装多个不同版本内核;

 注意:如果程序包的配置文件安装后曾被修改,升级时,新版本的文件不会覆盖老版本的配置文件,而把新版本的配置文件重命名(加后缀.rpmnew)后保存;

 

卸载:

 移除已经安装的程序包

 rpm {-e|--erase} [--allmatches] [--nodeps] [--test] PACKAGE_NAME ...

 简单用法:rpm -e PACKAGE_NAME...

--nodeps:忽略依赖关系; 

--test: 测试卸载;dry-run模式;

--allmatches: 如果一个程序包同时安装多个版本,则此选项一次全部卸载之;

 注意:如果程序包的配置文件安装后曾被修改,卸载时,此文件通常不会被删除,而是被重命名(加后缀.rpmsave)后留存;

 

查询:

查询某包是否已经安装,以及检查安装的所有包;还可以查看某包的详细信息;

rpm {-q|--query} [select-options] [query-options]

 

1、查询某包或某些包是否安装:

rpm -q PACKAGE_NAME...

 2、查询已经安装的所有包:

rpm -qa

 3、查询某文件是由哪个包安装生成:

rpm -qf /PATH/TO/SOMEFILE

 4、查询尚未安装的包文件的相关信息

-p

# rpm -qpi PACKAGE_FILE

 

[query-options]:

1、查询某包的简要说明信息:

rpm -qi PACKAGE_NAME

 2、查询某包安装生成的文件列表:

rpm -ql PACKAGE_NAME

 3、查询某包安装完成后生成的所有配置文件:

rpm -qc PACKAGE_NAME

 4、查询某包安装完成后生成的所有帮助文件:

rpm -qd PACKAGE_NAME

 5、查看某包制作时随版本变化的changelog信息:

rpm -q --changelog PACKAGE_NAME

 6、查询某包提供的capabilities有哪些功能:

rpm -q --provides PACKAGE_NAME

 7、查询某包所依赖的capabilities

rpm -q --requires PACKAGE_NAME

 8、查询某包安装或卸载时执行脚本:

rpm -q --scripts PACKAGE_NAME

 脚本有四类:

preinstall: 安装过程开始之前执行的脚本;

postinstall: 安装过程完成之后执行的脚本;

preuninstall: 卸载开始之前执行的脚本 

postuninstall: 卸载过程完成之后执行的脚本;

 校验:

查询包安装之后生成的文件是否发生了改变

 rpm {-V|--verify} [select-options] [verify-options]

 常见用法: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

 程序包的合法性验正:

来源合法:

由我们信任的制作者提供

依赖于:制作者的数字签名;签名是作者使用自己的私钥加密程序包的特性码进行的;

内容合法:

包未被二次修改;完整性校验成功

依赖于:制作者提供的程序特征码;

验正方式:安装者用同样的特征码提取算法提取程序包的特征码,并与原作者提供的相比较;

 

验正其光盘中程序包的来源及完整性:

rpm --import /path/to/RPM-GPG-KEY-FILE

例如:# rpm --import RPM-GPG-KEY-CentOS-6

 

验正:rpm {-K|--checksig} PACKAGE_FILE

--nosignature: 不检查来源合法性

--nodigest: 不检查完整性

 

rpm管理器数据库:/var/lib/rpm

 

重建数据库:

 rpm {--initdb|--rebuilddb} [-v] [--dbpath DIRECTORY]

 --initdb: 初始化数据库,即数据库完全不存时,可新建之;

 --rebuilddb: 无论当前数据存在与否,都会直接重建此库;