Linux软件包管理之rpm(4)

前言:包制作者制作完成之后会附加数字签名于包上;包的制作者使用单向加密提取原始数据的特征码,而后使用自己的私钥加密这段特征码,附加原始数据后面。

验证包来源合法性和完整性的过程:

前提:必须有可靠机制获取到包制作者的公钥

1、使用制作者的公钥解密加密的特征码,能解密则意味着来源合法

2、使用与制作者同样的一样加密算法提取原始数据的特征码,并与解密出来的特征码比对,相同,则意味着完整性没问题,所以我们必须在当前系统上导入包的制作者的公钥

导入公钥:

 rpm –-import /path/to/key_file

小贴士:centos6的密钥是在光盘里的“RPM-GPG-KEY-CentOS-6 ”文件

显示所有已导入的gpg格式的公钥:

rpm -qa gpg-pubkey*

显示公钥的详细信息:

rpm -qi gpg-pubkey-name

检查包安装过程中会自动执行,若要手动检测请如下操作:

手动检查:

rpm -K /path/to/package_file rpm –-checksig /path/to/package_file

不检查包完整性:

rpm -K –-nodigest

不检查来源合法性:

rpm -K –-nosignature

实验:

误删除rpm修复方法:

1.进入救援模式

2.创建挂载目录:

mkdir /mnt/cdrom

3.挂载光盘镜像:

mount -r /dev/sr0 /mnt/cdrom

4.进入软件包目录:

cd /mnt/cdrom/Packages/

5.安装rpm:

rpm -ivh rpm-4.11.3-17.el6.x86_64- --root=/mnt/sysimage/


练习:

[root@localhost Packages]# rpm -ivh zsh-4.3.10-7.el6.x86_64.rpm                              #安装时会提示你没有公钥,无法校验包的完整性与合法性 warning: zsh-4.3.10-7.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY [root@localhost Packages]# rpm --import /mnt/RPM-GPG-KEY-CentOS-6                            #导入密钥 [root@localhost Packages]# rpm -qa gpg-pubkey*                                                #查看所以已导入的gpg格式的密钥 gpg-pubkey-c105b9de-4e0fd3a3 [root@localhost Packages]# rpm -qi gpg-pubkey-c105b9de-4e0fd3a3                              #查看密钥详细信息 [root@localhost Packages]# rpm -ivh --replacepkgs zsh-4.3.10-7.el6.x86_64.rpm                #可以导入密钥后安装软件会自动执行检查,通过后直接安装      Preparing...                ########################################### [100%]       1:zsh                    ########################################### [100%] [root@localhost Packages]# rpm -K zsh-4.3.10-7.el6.x86_64.rpm                                #手动检查包的完整性与合法性 zsh-4.3.10-7.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OK 八、知识要点总结

8.1、了解软件包管理器的来源与使用

8.2、熟悉RPM包的命名格式 name-version-release.arch.rpm

8.3、熟悉打包和分包机制

8.4、熟悉RPM命令的使用 ,包括 安装、卸载、查询、升级、校验、公钥导入、合法性的检验、RPM数据库重建

虽然在安装软件时还有其他更好的命名,比如yum(日后再介绍),但是yum也是基于RPM而衍生出来的,而且在查询软件包很有用,日后也会经常使用这个命令,所以必须要对RPM命令非常熟悉,尤其是查询命令,对日后维护Linux系统帮助很大。建议多加练习

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14355.html