参考 https://gist.github.com/fernandoaleman/1376720

如果打不开上一个连接,请参考https://www.cnblogs.com/LiuYanYGZ/p/9433756.html

 如何制作带签名的自定义rpm包
 操作步骤:
制作rpm包的服务器: 由于制作rpm包的用户打算使用rpmuser用户,所以可以将gpg的一系统操作在rpmuser下进行,我使用的是root,然后再将/root/.gnupg/拷贝到/home/rpmuser/.gnugp/ 再改chown -R rpmuser:rpmuser /home/rpmuser/.gnugp/ )gpg --gen-key pg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 2D50D623 marked as ultimately trusted
public and secret key created and signed. )gpg --list-keys
[root@localhost rpmbuild]# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub 1024R/2D50D623 --
uid FeiTian (FeiTian Released) <sales@ftsafe.com>
sub 1024R/FF885B48 -- )gpg --export -a 2D50D623 > RPM-GPG-KEY )配置 ~/.rpmmacros file
# vim ~/.rpmmacros
#
# %_signature => This will always be gpg
# %_gpg_path => Enter full path to .gnupg in your home directory
# %_gpg_name => Use the Real Name you used to create your key
# %_gpbin => run `which gpg` (without ` marks) to get full path %_signature gpg
%_gpg_path /root/.gnupg
%_gpg_name Fernando Aleman
%_gpgbin /usr/bin/gpg )为DIY的包签名
rpm --addsign git-1.7.7.3-.el6.x86_64.rpm

rpm --addsign *.rpm
root下对未签名的rpm包进行签名,签名后的文件与签名前的相比只是在文件头部(添加)修改了一些信息, 签名后大了344个字节。
然后rpmuser下的操作却整个包没有相同的地方。 )rpm build期间可以指定--sign来直接得到签名了的rpm包
rpmbuild -ba --sign SPECS/hello.spec 下载rpm者:
)导入发布者公钥RPM-GPG-KEY
sudo rpm --import RPM-GPG-KEY )Verify the list of gpg public keys in RPM DB
rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n' )成功导入公钥后才能验签 (观察'gpg OK')---先打包后签名的rpm包
[root@localhost GPG]# rpm --checksig /usr/local/hello-0.1-.x86_64.rpm
/usr/local/hello-0.1-.x86_64.rpm: rsa sha1 (md5) pgp md5 确定
否则,提示不正确 ---先打包后签名的rpm包
[root@localhost GPG]# rpm --checksig /usr/local/hello-0.1-.x86_64.rpm
/usr/local/hello-0.1-.x86_64.rpm: RSA sha1 (MD5) PGP md5 不正确 注意:无论是先打包后签名 还是 打包时直接签名, 验签时都显示"pgp 确定"
[root@localhost GPG]# rpm --checksig ./hello-0.1-.x86_64.rpm.signed_first_rpm_second_sign
./hello-0.1-.x86_64.rpm.signed_first_rpm_second_sign: rsa sha1 (md5) pgp md5 确定
[root@localhost GPG]#
[root@localhost GPG]#
[root@localhost GPG]#
[root@localhost GPG]# rpm --checksig ./hello-0.1-.x86_64.rpm_rpmbuild_with--sign
./hello-0.1-.x86_64.rpm_rpmbuild_with--sign: rsa sha1 (md5) pgp md5 确定

DIY的RPM包怎么签名呢 - 笔记的更多相关文章

  1. DIY的RPM包怎么签名呢 How to sign your custom RPM package with GPG key

    https://gist.github.com/fernandoaleman/1376720  How to sign your custom RPM package with GPG key 这是文 ...

  2. 使用rpm-build制作nginx的rpm包

    2014-11-27 11:05:49   一.RPM包的分类 RPM有五种基本的操作功能:安装.卸载.升级.查询和验证. linux软件包分为两大类: (1)二进制类包,包括rpm安装包(一般分为i ...

  3. 一步步制作RPM包

    一步步制作RPM包 来源 http://blog.51cto.com/laoguang/1103628 一.RPM制作步骤 我们在企业中有的软件基本都是编译的,我们每次安装都得编译,那怎么办呢?那就根 ...

  4. [转帖]Linux学习笔记之rpm包管理功能全解

    Linux学习笔记之rpm包管理功能全解 https://www.cnblogs.com/JetpropelledSnake/p/11177277.html rpm 的管理命令 之前学习过 yum 的 ...

  5. Linux学习笔记之rpm包管理功能全解

    0x00 软件包管理器 所有的软件都是由文件格式的程序代码(即源代码),经过编译成为一个可执行二进制文件:对于一个软件来说,其包含二进制程序.库文件.配置文件以及帮助文件.在应用中,每次要安装程序时通 ...

  6. linux学习笔记3:linux的网络配置,rpm包,shell以及samba服务器的使用和安装

    1.linux下的shell<linux命令.编辑器和shell编程> (1)shell种类有很多,常用的有三种,在linux可以通过ls -l /bin/*sh 来显示所有已安装的she ...

  7. Linux学习笔记15—RPM包的安装OR源码包的安装

    RPM安装命令1. 安装一个rpm包rpm –ivh 包名“-i” : 安装的意思“-v” : 可视化“-h” : 显示安装进度另外在安装一个rpm包时常用的附带参数有:--force : 强制安装, ...

  8. RPM 包的构建 - SPEC 基础知识

    spec 文件 制作 rpm 软件包并不是一件复杂的工作,其中的关键在于编写软件包的 spec 描述文件. 要想制作一个 rpm 软件包就必须写一个软件包描述文件 spec.这个文件中包含了软件包的诸 ...

  9. 安装rpm包时遇到Header V3 DSA signature: NOKEY时解决办法

    安装rpm包,特别是没有GPGkey校验,原因是rpm版本过低导致的. 代码如下: warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY ...

随机推荐

  1. linux命令学习笔记(28):tar命令

    通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的 工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linu ...

  2. HDU - 2294: Pendant(矩阵优化DP&前缀和)

    On Saint Valentine's Day, Alex imagined to present a special pendant to his girl friend made by K ki ...

  3. C#异步编程(一)线程及异步编程基础

    最近试着做了几个.NET CORE的demo,看了些源码,感觉异步编程在Core里面已经成为主流,而对这块我还没有一个系统的总结,所以就出现了这篇文字,接下来几篇文章,我会总结下异步编程的思路,主要参 ...

  4. Python的交互模式和命令行模式

    Pyhton的交互模式 在终端输入Python3命令就会进入家Python的交互模式,在交互模式下,输入一行代码,回车,就会执行这行代码. Python的命令行模式 在终端输入Python3 1.py ...

  5. linux内核图形配置疑难解决

    配置linux内核是遇到的问题:(1)问题一make gconfig * * Unable to find the GTK+ installation. Please make sure that * ...

  6. Linux查找/扫描局域网打印机IP

    假设在 192.168.10.* 有一台网络打印机,但是我们不知道它的地址.一种笨方法就是在浏览器中依次输入 192.168.10.1 到 192.168.10.254,看是否出现管理页面. 另一种思 ...

  7. mysql5.6之 传输表空间迁移表或恢复误删除的表

    一,简单说明: 1),传输表空间的限制:  1,mysql 版本 5.6.6 及其以上,并且版本建议源和目标版本建议都是GA版并且大版本一样  2,表引擎为innodb并且开启独立表空间  innod ...

  8. 跨域问题解决方案之chrome插件

    地址: https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkki ...

  9. Hybrid APP混合开发

    写在前面: 由于业务需要,接触到一个Hybrid APP混合开发的项目.当时是第一次接触混合开发,有一些经验和总结,欢迎各位一起交流学习~ 1.混合开发概述 Hybrid App主要以JS+Nativ ...

  10. Azure VM从ASM迁移到ARM(一)

    Azure的IaaS有ASM和ARM两个版本,ARM的一些优点前面已经聊过很多了.ARM有更细的管理颗粒度,更多的功能等. 如果想从ASM迁移到ARM,目前有两类方法可以实现: 1. Azure平台支 ...