一.rpm命令使用

1.rpm命令

1.CentOS系统上rpm命令管理程序包:安装、升级、卸载、查询和校验、数据库维护

2.rpm命令:rpm [OPTIONS] [PACKAGE_FILE]
1)安装:-i, --install
2)升级:-U, --update, -F, --freshen
3)卸载:-e, --erase
4)查询:-q, --query
5)校验:-V, --verify
6)数据库维护:–builddb, --initdb

2.rpm安装

1.rpm {-i|–install} [install-options] PACKAGE_FILE …

1)通常使用-i选项(安装)

2)-v选项显示详细信息

3)-h选项:hash marks输出进度条;每个#表示2%的进度

4 -vv:显示更详细的信息

centos下强制安装rpm centos 安装rpm软件包的命令_rpm命令使用


5)- -test:测试安装,检查并报告依赖关系及冲突消息等,并不会真的安装

centos下强制安装rpm centos 安装rpm软件包的命令_rpm命令使用_02


6)- -nodeps:忽略依赖关系;不建议

centos下强制安装rpm centos 安装rpm软件包的命令_centos下强制安装rpm_03


7)- -replacepkgs:重新安装

centos下强制安装rpm centos 安装rpm软件包的命令_rpm命令使用_04


8)- -nosignature:不检查包签名信息,不检查来源合法性

centos下强制安装rpm centos 安装rpm软件包的命令_centos下强制安装rpm_05


9)- -nodigest:不检查包完整性信息

centos下强制安装rpm centos 安装rpm软件包的命令_不执行_06

3.rpm可以自带脚本

1.四类:- -noscripts(四类都不执行)

centos下强制安装rpm centos 安装rpm软件包的命令_不执行_07


1)preinstall:安装过程开始之前运行的脚本,%pre , --nopre选项不执行

2)postinstall:安装过程完成之后运行的脚本,%post , --nopost选项不执行

3)preuninstall:卸载过程真正开始执行之前运行的脚本,%preun, --nopreun 选项不执行

4)postuninstall:卸载过程完成之后运行的脚本,%postun , --nopostun选项不执行

4.升级

1.一般使用rpm -Uvh或-Fvh**{-U|–upgrade}/ {-F|–freshen}** [install-options] PACKAGE_FILE …

  1. -U选项:升级或安装
[root@sakura Packages]# rpm -ivh adcli-0.8.1-3.el7.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:adcli-0.8.1-3.el7                ################################# [100%]
[root@sakura Packages]# rpm -Uvh /root/adcli-0.8.1-6.el7.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:adcli-0.8.1-6.el7                ################################# [ 50%]
正在清理/删除...
   2:adcli-0.8.1-3.el7                ################################# [100%]

2)-F选项:仅升级,若未安装则不会升级

3)- -oldpackage:降级选项

4)- -force:强制升级

ps:1.不要对内核进行升级操作,linux支持多内核版本并存,可以直接安装新版本内核
2.如果某源程序包的配置文件安装后被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供。

5.卸载

1.rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–test] PACKAGE_NAME …

centos下强制安装rpm centos 安装rpm软件包的命令_配置文件_08


1)- -allmatches:卸载所有匹配指定名称的程序包的各版本

2)- -nodeps:忽略依赖关系

3)- -tesh:测试卸载,dry run模式,不会删除现有程序包

centos下强制安装rpm centos 安装rpm软件包的命令_rpm命令使用_09

6.查询

1.用法:rpm {-q|–query} [select-options] [query-options]

2.选择选项: [select-options]

1)-q :查询指定的程序包是否已经安装,及其版本

centos下强制安装rpm centos 安装rpm软件包的命令_数据库_10


2)-a或- -all:查询所有已经安装过的程序包,可配合grep使用

centos下强制安装rpm centos 安装rpm软件包的命令_数据库_11


3)-f file:查询指定的文件由哪个程序包安装生成

centos下强制安装rpm centos 安装rpm软件包的命令_数据库_12


4)-p或- -package package_file:实现对未安装的程序包进行查询操作

centos下强制安装rpm centos 安装rpm软件包的命令_数据库_13


5)- -whatprovides CAPABILITY:查询指定的功能由哪个程序包提供

centos下强制安装rpm centos 安装rpm软件包的命令_rpm命令使用_14


6)- -whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖;

centos下强制安装rpm centos 安装rpm软件包的命令_rpm命令使用_15

3.[query-options]查询选项

1)-i,,–info:程序包相关的信息,版本号、大小、所属的包组,等

centos下强制安装rpm centos 安装rpm软件包的命令_不执行_16


2)-l, --list:程序安装生成的所有文件列表

centos下强制安装rpm centos 安装rpm软件包的命令_不执行_17


3)-c,- -configfiles:查询指定的程序包提供的配置文件

centos下强制安装rpm centos 安装rpm软件包的命令_数据库_18


4)-d,- -docfiles:查询指定的程序包提供的文档

centos下强制安装rpm centos 安装rpm软件包的命令_不执行_19


5)- -changelog:查询程序包的改变日志

centos下强制安装rpm centos 安装rpm软件包的命令_配置文件_20


6)- -provides:列出指定的程序包提供的所有功能

centos下强制安装rpm centos 安装rpm软件包的命令_rpm命令使用_21


7)-R或- -requires:查询指定程序包的依赖关系

centos下强制安装rpm centos 安装rpm软件包的命令_centos下强制安装rpm_22


8)- -scripts:查看程序包自带的脚本片段

centos下强制安装rpm centos 安装rpm软件包的命令_数据库_23

7.校验

1.语法:rpm {-V|–verify} [select-options] [verify-options]

1)使用rpm -ql查询到zsh的文件列表后在其文件中加入了一行#

centos下强制安装rpm centos 安装rpm软件包的命令_不执行_24


ps:校验时各字段的含义

1)S file Size differs:文件大小是否发生改变

2)M Mode differs (includes permissions and file type):文件类型或文件属性是否发生改变

3)5 digest (formerly MD5 sum) differs:数据指纹信息的内容已经改变

4)D Device major/minor number mismatch:设备的主,次代码发生改变

5)L readLink(2) path mismatch:Link路径已经发生改变

6)U User ownership differs:文件所属人发生改变

7)G Group ownership differs:文件所属组发生改变

8)T mTime differs:文件的创建时间发生改变

9)P caPabilities differ:功能发生改变

2.程序包来源合法性和完整性验证
1)来源合法性:程序包制作完成后,制作人通过对程序包的数据特征码进行加密,生成私钥和公钥。在使用者安全取得公钥后,即可以与私钥验证进行来源合法性的验证。

2)完整性验证:使用者使用与制作者相同的算法,对程序包数据的特征码进行计算,若与制作者的程序特征码相同,即可验证其完整性。

3.获取并导入信任的抱制作者的秘钥:
1)对于centos发行版来说,其秘钥在安装完系统后及存在于:/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7处

2)使用rpm - -import进行秘钥导入:

centos下强制安装rpm centos 安装rpm软件包的命令_rpm命令使用_25


ps:秘钥成功导入后安装及不会提示警告信息

3)获取秘钥也可以挂载发行版光盘,挂载后其中也存在秘钥RPM-GPG-KEY-CentOS-7

4.验证

1)安装此组织签名的程序时,会自动执行验证

2)手动验证:rpm -K PACKAGE_FILE,若导入正确秘钥后,会显示其合法性

centos下强制安装rpm centos 安装rpm软件包的命令_不执行_26

8.数据库重建

1.rpm管理器数据库路径:/var/lib/rpm/,通过此处的数据库进行查询操作

centos下强制安装rpm centos 安装rpm软件包的命令_数据库_27


2.获取帮助

1)centos6:man rpm

2)centos7:man rpmdb3.语法:rpm {–initdb|–rebuilddb} [–dbpath DIRECTORY] [–root DIRECTORY]

1)- -initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前有时不执行任何操作;

centos下强制安装rpm centos 安装rpm软件包的命令_配置文件_28


2)- -rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建;

centos下强制安装rpm centos 安装rpm软件包的命令_rpm命令使用_29


ps:删除数据库进行重建,建议不要使用…

centos下强制安装rpm centos 安装rpm软件包的命令_rpm命令使用_30