我有一个公共仓库,里面有 2 个可用的软件包。它使用 进行设置,并使用 中的reprepro
说明引用的 GPG 密钥对它进行签名。软件包使用 进行添加 。SignWith
public/conf/distributions
reprepro -b public/ --ask-passphrase includedeb focal mypackage_amd64.deb
由于 GPG 密钥已过期,我现在需要设置一个新的。因此我执行了以下步骤:
生成一个新的 GPG 密钥
gpg --gen-key
。使用 repo 文件夹导出密钥
gpg --armor --export 9B5BBD0820B7326B > repo.asc
,以便用户能够wget -q http://repo.example.com/repo.asc -O- | sudo apt-key add -
更改每一
SignWith
行public/conf/distributions
以匹配新的 gpg。
现在,当我获得文件时(http://repo.example.com/public/conf/distributions,http://repo.example.com/repo.asc),事情看起来是对的。
但apt update
仍然抱怨:
错误:1http://repo.example.com/publicfocal InRelease
以下签名无效:EXPKEYSIG 8320586119BDB444 作者[电子邮件保护]
这8320586119BDB444
与之前的 GPG 相对应。此过程中缺少什么?
答案1
从头到尾写下问题有时有助于弄清楚缺少了什么:)
我只需要使用以下命令重新生成 repo 文件:
reprepro -b public/ --ask-passphrase export focal
reprepro -b public/ --ask-passphrase export bionic