标签:version release 源代码 合法性 特征码
一:简介
rpm包的命名格式:
name-version-relase.arch.rpm
version:major,minor,release,同源代码
release:rpm自身的发行号,与程序源代码的发行号无关,仅用于标示对rpm包不同制作的修订;同时,release还包含此包适用的OSbash-4.2.3-3.centos5
arch:适用于的硬件平台,
可靠的途径:EPEL
Fedora-EPEL 额外包
rpm包的合法性验证:
包制作者制作完成之后会附加数字签名于包上;来源合法性;包的完整性
包的制作者使用单向加密提取原始数据的特征码,而后使用自己的私钥加密这段特性码,附加原始数据后面。
验证过程:
前提:必须有可靠机制获取到包制作者的公钥;
1、使用制作者的公钥解密加密的特征码,能解密则意味着来源合法;
2、使用与制作者同样的意向加密算法提取原始数据的特征码,并与解密出来的特征作对比,相同,则意味着完整性没有问题。
二:rpm包管理器的常见使用场景:
安装程序包
格式:
rpm [option] /path/to/package_file
-i | 安装程序包 例如rpm -i zsh-4.3.10-7.e16.x86_64.rpm |
-v | 详细安装信息 注 -vv 和-vvv 可以看见更详细和更加详细的安装信息 |
-ivh | 显示安装进度 |
--test | 仅作测试,有真正执行安装 |
注:如果依赖于其它包:
1、解决依赖关系
2、忽略依赖关系
能卸载,但依赖于此包程序包可能会运行不正常;
强制卸载:--nodeps
三:升级程序包
新版本替换老版本 :rpm [option] /path/to/package_file
1、升级或安装
-Uvh
2、纯升级
-Fvh
升级后的版本冲突等;
强制升级:--force
注意:不应该对内核执行升级操作,而安装系统允许多内核并存
四:查询操作:
1、查询某包是否安装
rpm -q package_name...
例如: rpm -q zsh 查看2个以上 rpm -q zsh phd
2、查询所有已经安装的包
rpm -qa
按条件过滤:rpm -qa | grep ‘PATTERN‘
例如: rpm -qa | grep "^php.*m.*"
3、查询包的描述信息
rpm -qi package_name 例如:rpm -qi zsh
4、查询某包安装生了那些文件
rpm -ql package_name
(1) 查询某包安装生成了哪些配置文件
rpm -qc package_name
(2) 查询某包安装生成了哪些帮助文件
rpm -qd package_name
(3) 查询程序包的相关脚本
rpm -q --scripts package_name
脚本有四类:
preinstall:安装前脚本
postinstall: 安装后脚本
preuninstall: 卸载前脚本
postuninstall: 年前后脚本
5、查询某文件是由哪个包安装生成的
rpm -qf /path/to/some_file
6、对尚未安装的包执行查询
rpm [option] /path/to/package_file
-qpi | 列出RPM软件包的描述信息 |
-qpl | 列出RPM软件包内的文件信息 |
-qpc | 查看一个软件包的配置文件 |
-qpd | 查看软件包的文档所在的位置 |
五:校验:
用于检查包安装生成的文件属性是否发生变化
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包来源合法性及完整性检验:
前提:在当前系统上导入包的制作者的公钥
导入:
rpm --import /path/to/key_file
# rpm -qa gpg-pubkey* 显示所有已经导入的gpg格式的公钥
# rpm -qi gpg-pubkey-NAME 显示密钥的详细信息
七:检查包:安装过程中会自动执
rpm -K /path/to/package_file
rpm --checksig /path/to/package_file
不检查包完整性:rpm -K --nodigest
不检查来源合法性: rpm -K --nosignatu
八:数据库重建:
数据库目录:/var/lib/rpm
重建:
rpm --initdb:初始化
如果事先没有库,会新建一个;如果有,则不新建;
rpm --rebuilddb: 重建
直接重建,覆盖原有的数据库
本文出自 “正则表达式” 博客,请务必保留此出处http://hhxxb.blog.51cto.com/9152570/1440620
标签:version release 源代码 合法性 特征码
原文地址:http://hhxxb.blog.51cto.com/9152570/1440620