Linux系统之程序包管理器(4)

RPM包的校验主要有来源合法性验证与包的完整性验证。
    数字签名:包的制作者使用单向加密提取原始数据的特征码,而后使用自己的私钥加密这段特性码,附加原始数据后面。
    验正过程:
        前提:必须有可靠机制获取到包制作者的公钥;
        1、使用制作者的公钥解密加密的特征码,能解密则意味着来源合法;
        2、使用与制作者同样的意向加密算法提取原始数据的特征码,并与解密出来的特征作比对,相同,则意味着完整性没问题;
rpm包来源合法性及完整性检验:
            在当前系统上导入包的制作者的公钥:
                rpm --import /path/to/key_file
          显示所有已经导入的gpg格式的公钥:
                rpm -qa gpg-pubkey*       
[root@CentOS6 cd]# rpm -qa gpg-pubkey*
gpg-pubkey-c105b9de-4e0fd3a3
[root@CentOS6 cd]#

显示密钥的详细信息

rpm -qi gpg-pubkey-NAME       
[root@CentOS6 cd]# rpm -qi gpg-pubkey-c105b9de-4e0fd3a3
Name        : gpg-pubkey                  Relocations: (not relocatable)
Version    : c105b9de                          Vendor: (none)
......
-----END PGP PUBLIC KEY BLOCK-----

【注意】安装过程中会自动用已经导入的的公钥,对程序包进行检验,一般无需进行手动校验。

手动检查:
          rpm {-K|--checksig} [--nosignature] [--nodigest] PACKAGE_FILE
              选项说明:
                    -K :等同于 --checksig ,进行检查并显示结果;
                    --nodigest:不检查包完整性;
                    --nosignature:不检查来源合法性。
[root@CentOS6 cd]# cd Packages/
[root@CentOS6 Packages]# rpm -K zsh-4.3.10-7.el6.i686.rpm 
zsh-4.3.10-7.el6.i686.rpm: rsa sha1 (md5) pgp md5 OK
[root@CentOS6 Packages]# rpm --checksig zsh-4.3.10-7.el6.i686.rpm 
zsh-4.3.10-7.el6.i686.rpm: rsa sha1 (md5) pgp md5 OK
[root@CentOS6 Packages]# rpm -K --nodigest zsh-4.3.10-7.el6.i686.rpm 
zsh-4.3.10-7.el6.i686.rpm: rsa (md5) pgp OK
[root@CentOS6 Packages]# rpm -K --nosignature zsh-4.3.10-7.el6.i686.rpm 
zsh-4.3.10-7.el6.i686.rpm: sha1 md5 OK


  RPM- 数据库重建:
        数据库目录:/var/lib/rpm
        重建数据库:
            rpm --initdb:初始化
                如果事先没有库,会新建一个;如果有,则不新建;
            rpm --rebuilddb : 重建
                直接重建,覆盖原有的数据库

RPM包创建入门 

如何在Linux中创建RPM包? 

制作自己的rpm包

Linux 下rpm安装后的目录结构和一些配置

rpm与yum的综合性介绍与示例演示

RedHat Linux---rpm 命令详解

使用FPM轻松制作RPM包

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

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