rpm命令参数使用详解
CentOS系统上rpm命令管理程序包:
主要分为:安装、升级、卸载、查询和校验、数据库维护
使用格式:rpm命令:rpm [OPTIONS] [PACKAGE_FILE]
选项:
安装:-i,--install
升级:-U,--update,-F,--freshen
卸载:-e,--erase
查询:-q,--query
校验:-V,--verify
数据库维护:--builddb,--initdb
一、安装
rpm {-i|--install} [install-options] PACKAGE_FILE ...
rpm -ivh PACKAGE_FILE ...
GENERAL OPTIONS:
-v:verbose,详细信息
图示:
-vv:更详细的信息
图示:
[root@localhost Packages]# rpm -ivvh zsh-5.0.2-7.el7.x86_64.rpm
[install-options]:
-h:hash marks输出进度条,每个#表示2%的进度
--test:测试安装,检查并报告依赖关系及冲突消息等
图示
--nodeps:忽略依赖关系,不建议
图示
--replacepkgs:重新安装(原有文件被修改,需删除)
图示:
rpm自带脚本;
共分为四类:--noscripts
1、preinstall:安装过程开始之前运行的脚本,%pre , --nopre
2、postinstall:安装过程完成之后运行的脚本,%post , --nopost
3、preuninstall:卸载过程真正开始执行之前运行的脚本,%preun, --nopreun
4、postuninstall:卸载过程完成之后运行的脚本,%postun , --nopostun
--nosignature:不检查包签名信息,不检查来源合法性;
图示:
--nodigest:不检查包完整性信息;
图示:
二、升级
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
upgrade:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
freeshen:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级
-U:升级或安装;
-F:升级
rpm -Uvh PACKAGE_FILE ...
图示:
rpm -Fvh PACKAGE_FILE ...
图示:
--oldpackage:降级;
--force:强制升级;
注意:(1)不要对内核做升级操作:Linux支持多内核版本并存,因此,直接安装新版本内核
(2)如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一 个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名后提供
三、卸载:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
--allmatches:卸载所有匹配指定名称的程序包的各版本
--nodeps:忽略依赖关系
--test:测试卸载,dry run模式
图示:
四、查询:
rpm {-q|--query} [select-options] [query-options]
[select-options]
PACKAGE_NAME:查询指定的程序包是否已经安装,及其安装版本
-a,--all:查询所有已经安装过的包
-f FILE:查询指定的文件由哪个包安装的
图示:
-p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作
--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖
[query-options]
--changelog:查询rpm包的changlog
-l,--list:程序安装生成的所有文件列表
-i,--info:程序包相关的信息,版本号、大小、所属的包组,等
-c,--configfiles:查询指定的程序包提供的配置文件
-d,--docfile:查询指定的程序包提供的文档
-R,--requlres:查询指定的程序包的依赖关系
--provides:列出指定的程序包提供的所有的CAPABILITY
--scripts:查看程序包自带的脚本片断
五、校验:
rpm {-V|--verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs MD5码
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
包来源合法性验证和完整性验证:
来源合法性验证:
数字签名:
完整性验证:
获取并导入信任的包制作作者的密钥:
对于CentOS发行版来说:rpm--import/etc/pki/rpm-gpg/RPM-GPG-KEY-Centos-7
验证:
1、安装此组织签名的程序时,会自动执行验证
2、手动验证:rpm-K PACKAGE_FILE
光盘公钥导入:
[root@localhost ~]# rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-7
六、数据库重建:
rpm管理器数据库路径:/var/lib/rpm/
查询操作:通过此处的数据库进行;
获取帮助:
centos6:man rpm
centos7:man rpmdb
rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]
--initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前 有时不执行任何操作;
--rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进 行重新创建;