rpmbuild signature public key

本文介绍如何使用GnuPG生成RPM-GPG-KEY用于软件包签名,并详细说明了设置过程及如何验证签名的有效性。此外还介绍了如何在YUM源配置文件中指定GPG Key进行自动验证。
生成 RPM-GPG-KEY-test
# gpg --gen-key
gpg (GnuPG) 1.4.5; Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Please select what kind of key you want:
(1) DSA and Elgamal (default)
(2) DSA (sign only)
(5) RSA (sign only)
Your selection? 1
DSA keypair will have 1024 bits.
ELG-E keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 1024
Requested keysize is 1024 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Real name: test <http://ci.com>
Invalid character in name
Real name: test
Email address: <hesk@test.com>
Comment:
You selected this USER-ID:
"test <hesk@test.com>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
You need a Passphrase to protect your secret key.
"test"


# gpg --list-keys

# gpg --export -a "test" > RPM-GPG-KEY-test

# rpm --import RPM-GPG-KEY-test

# rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'


# rpm --addsign /test-2.2-00.i386.rpm
# rpm --checksig /test-2.2-00.i386.rpm
验证RPM-GPG-KEY-test

# vi /root/.rpmmacros
%_signature gpg
%_gpg_path /root/.gnupg
%_gpg_name test

#rpmbuild -ba --sign test-2.2.spec
打包使用RPM-GPG-KEY-test

yum安装使用 RPM-GPG-KEY-test
# vi /etc/yum.repos.d/test.repo
[c5-media]
name=CentOS-$releasever - Media
#baseurl=ftp://test:test@172.25.165.2/dvdrom
baseurl=file:///cd1
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-test
### 构建RPM软件包的详细步骤 构建RPM软件包是Linux系统中常见的需求,尤其是在进行软件分发或定制化部署时。以下是一个完整的流程,涵盖从准备环境到生成最终RPM包的过程。 #### 1. 安装必要的工具和依赖项 在开始构建RPM包之前,需要安装 `rpmbuild` 工具链以及相关的开发依赖项。可以通过以下命令安装: ```bash yum install rpm-build rpmdevtools zlib-devel openssl-devel gcc perl-devel pam-devel -y ``` 其中,`rpmdevtools` 提供了一些辅助工具,例如 `rpmdev-setuptree` 可以帮助快速创建 RPM 构建所需的目录结构[^1]。 #### 2. 创建RPM构建目录结构 使用 `rpmdev-setuptree` 命令创建标准的 RPM 构建目录树: ```bash rpmdev-setuptree ``` 该命令会在当前用户的主目录下创建一个 `rpmbuild` 文件夹,包含以下子目录: - `SPECS`:存放 `.spec` 文件(定义如何构建软件包)。 - `SOURCES`:存放源代码包及相关补丁文件。 - `RPMS`:生成的二进制 RPM 包将放在此处。 - `SRPMS`:生成的源码 RPM 包将放在此处。 - `BUILD`:编译过程中使用的临时工作目录。 #### 3. 准备源代码和.spec文件 将所需版本的源代码包复制到 `SOURCES` 目录。例如,如果要打包 OpenSSH,则可以下载源码包并放入该目录: ```bash cp openssh-8.8p1.tar.gz ~/rpmbuild/SOURCES/ ``` 接下来,获取对应的 `.spec` 文件。有些开源项目自带 `.spec` 文件(通常在 `contrib/redhat/` 或类似路径下),也可以自行编写或修改现有 `.spec` 文件。将其放入 `SPECS` 目录中。 #### 4. 修改.spec文件(可选) 根据需求对 `.spec` 文件进行适当修改。例如,在 OpenSSH 的 `.spec` 文件中禁用 X11 和 GNOME 的密码提示功能: ```bash sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" openssh.spec sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" openssh.spec ``` 确保 `.spec` 文件中的路径、依赖关系和构建脚本符合你的实际需求。 #### 5. 构建RPM包 进入 `rpmbuild` 根目录并执行构建命令: ```bash cd ~/rpmbuild rpmbuild -ba SPECS/openssh.spec ``` `-ba` 参数表示同时构建二进制包和源码包。若一切顺利,构建完成后会在 `RPMS/x86_64/` 目录下找到生成的 RPM 包。 #### 6. 验证RPM包 使用以下命令查看 RPM 包的信息: ```bash rpm -qil RPMS/x86_64/openssh-8.8p1-1.x86_64.rpm ``` 这将显示该 RPM 包所包含的文件列表及其元数据信息。 --- ### 示例:Bump Spec 文件的 Release 版本 在维护多个版本的 RPM 包时,可能需要更新 `.spec` 文件中的发布标签。可以使用 `rpmdev-bumpspec` 工具自动完成此操作: ```bash rpmdev-bumpspec --comment="Updated to version 8.8p1" --userstring="John Doe <john.doe@example.com>" SPECS/openssh.spec ``` 该命令会自动增加 release 字段,并添加一条带有时间戳和用户信息的 changelog 条目[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值