1、安装

语法:rpm [选项] [参数] PACKAGE_FILE

选项:

    -i:install安装;

    -v:显示安装过程,vv详细过程;

    -h:一个#号代表2%进度;

参数:

    --nodeps:忽略依赖关系;

    --force:强制安装;

    --replacepkgs:重新安装;

    --oldpackage:降级安装;

    --test:测试安装;


2、查询

语法:rpm [选项] [参数] PACKAGE_NAME

选项:

    -q:查询指定软件是否安装,后边跟PACKAGE_NAME;

    -qa:查询所有已安装的软件;

    -qc:查询已安装软件的配置文件路径;

    -ql:查询已安装软件所生成的文件列表;

    -qi:查询已安装软件的详细信息,软件版本等;

    -qd:查询已安装软件的帮助文档;

    -qf:查询指定文件是由哪个rpm包安装生成的;


参数:

    --scripts:查询指定包中包含的脚本;

    脚本分为四类:

    1、preinstall:安装前

    2、postinstall:安装后

    3、preuninstall:卸载前

    4、postuninstall:卸载后


如果rpm包尚未安装,我们需要查询其说明信息、安装后会生成的文件;

rpm -qpi(query package ) /PATH/TO/PACKAGE_FILE.rpm--查询指定包安装后会生成的说明信息

rpm -qpl(query package ) /PATH/TO/PACKAGE_FILE.rpm--查询指定包安装后会生成的文件列表、目录

rpm -qpc(query package ) /PATH/TO/PACKAGE_FILE.rpm--查询指定包安装后会生成的配置文件

rpm -qpd(query package ) /PATH/TO/PACKAGE_FILE.rpm--查询指定包安装后会生成的帮助文档


3、升级

语法:

    rpm [选项] [参数] PACKAGE_FILE.rpm

选项:

    -Uvh:如果有老版本则在此基础升级,否则就安装;

    -Fvh:如果有老版本则在此基础升级,否则退出;

参数:

    --oldpackage:降级更新;

    --force:强制更新;

4、卸载

语法:

    rpm [选项] [参数]  PACKAGE_NAME

选项:

    -e:卸载

参数:

    --nodeps:忽略依赖关系;

    --force:强制卸载;


5、重建RPM数据库:

    rpm --rebuilddb  :不管此数据库有没有,都重建

    rpm --initdb    :初始化数据库,如果没有则建立;

    /var/lib/rpm    :RPM数据配置文件


5、rpm校验

rpm -V PACKAGE_NAME


校验信息核对表:

S :(file Size differs) 文件的容量大小是否被改变

M :(Mode differs) 文件的类型或文件的属性 (rwx) 是否被改变?如是否可运行等参数已被改变

5 :(MD5 sum differs) MD5 这一种指纹码的内容已经不同

D :(Device major/minor number mis-match) 装置的主/次代码已经改变

L :(readLink(2) path mis-match) Link 路径已被改变

U :(User ownership differs) 文件的所属人已被改变

G :(Group ownership differs) 文件的所属群组已被改变

T :(mTime differs) 文件的创建时间已被改变


7、rpm包来源合法性校验

rpm -K /PATH/TO/PACKAGE_FILE --验证rpm包

dsa,pgp:验证来源合法性,也即验证签名; --nosignature可以略过此项

sha1,md5:验证软件包完整性; --nodigest可以略过此项


rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release   --导入密钥文件