Centos 7 系统上用rpm命令管理程序包
安装、升级、卸载、查询、校验、数据库维护;
安装:
rpm {-i|--install} [install-options] PACKAGE_FILE …
-i:安装;
-v:显示详细信息;
-vv:你懂的;
-h:hash,就是以#显示安装进度,每个#表示2%的进度;
[install-options]:
--test:安装测试,不是真的安装;
--nodeps:忽略依赖关系安装;
--noscripts:安装时不运行rpm包自带的脚本;
--nopre:不运行安装前脚本;
--nopost:不运行安装后脚本;
--nopreun:不运行卸载前脚本;
--nopostun:不运行卸载后脚本;
--nodigest:安装时不检测完整性;
--nosignature:安装时不检测来源合法性;
--replacepkgs:重新安装;
升级:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
upgrade:安装时系统上已经安装了旧版本程序包,则做升级操作;如果没有则进行安装操作;
freshen:只在原有程序上进行升级操作;
--oldpackage:版本降级安装;
--force:强行安装;
Note:
linux 内核从4.0以后可以不用重启系统,之前的都不可以;所以为了防止升级不成功导致无法开机,linux支持多内核共存,直接安装新内核即可;
如果原程序包的配置文件在安装后有过修改,则升级时,新版本提供的同一个配置文件不会直接覆盖原来的配置文件,而是把新版本的重命名(FILENAME.rpmnew)后保留; 如果新旧相同则新版本的不会安装,依旧使用旧版本的配置文件;
查询:
rpm {-q|--query} [select-options] [query-options]
[select-options]:
-a:查看所有包;
-f:查看指定文件是由哪个程序包安装生成的;
-q /patch/to/package_file:针对尚未安装的程序包文件做查询操作;
--whatprovides CAPABILITY:查询指定的CAPABILITY是由哪个程序包提供的;
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个程序包所依赖;
[query-options]:
--changelog:查询rpm包的changelog;
-c:查询程序包的配置文件;
-d:查询程序包安装后所生成的文档;
-i:查询程序包的信息;
-l:查询指定的程序包安装后所生成的所有文件;
--scripts:查询程序包自带的脚本片段;
-R:查询指定的程序包所依赖的CAPABILITY;
--provides:列出指定程序包提供的CAPABILITY;
常用用法:
-qi PACHAGE ;-qf FILE;-qc PACKAGE;-ql PACKAGE;-qd PACKAGE;
-qpi PACKAGE_FILE;-qpl PACKAGE_FILE ;
-qa;
卸载:
rpm {-e|--erase} [--allmatches] [--justdb] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
校验:通过校验可以查询出来某个安装后的文件是否被修改过;
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:完整性改变;
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包制作完成后,会将rpm包用sha256或md5等单项加密算法计算出rpm程序包的摘要信息,然后用自己的私钥再加密计算出来的摘要信息,最后打包完成;用户可以通过使用制作者提供的公钥来解密摘要信息,然后跟自己用相同单项加密算法计算出来的摘要相对比,相同则说明来源合法并且数据包完整;公钥可以在权威的秘钥签发机构CA获得,但是一般不会有人为了rpm包而去注册一个CA证书,因为他是需要费用的,所以建议去官网这种比较权威的机构去寻找rpm程序包来下载安装;
加密方法:
对称加密:加密、解密使用同一秘钥;
非对称加密:秘钥时成对儿 的,公私不同;
public key:公钥,公开的;
secret key:私钥,私有的;
完整性验证:SHA256
来源合法性验证:RSA(非对称加密)
验证步骤:
倒入公钥:rpm --import /path/to/GPG-PUBKEY-FILE
centos 7 :/mnt/cdrom/RPM-GPG-KEY-CentOS-7
/mnt/cdrom:为安装光盘挂载点;
rpm -K /path/to/PACKAGES:直接检验rpm包的完整性,无需安装;
rpm数据库:
所在位置:/var/lib/rpm
重建数据库:
rpm [--initdb|--rebuilddb] 或者rpmdb [--initdb|--rebuilddb]
initdb:初始化;
如果实现不存在则新建数据库,否则不进行任何操作;
rebuilddb:重建数据库;
无论当前是否存在,直接重新创建数据库;
注:根据马哥视频做的学习笔记,如有错误,欢迎指正;侵删