Stu*_*xon 8 apt dpkg gnupg debuild
我正在尝试使用 debuild 构建 cairo。
我到了最后,这条消息:
gpg: skipped "Robert Ancell <robert.ancell@canonical.com>": secret key not available
Run Code Online (Sandbox Code Playgroud)
因为我不是 Robert Ancell,所以这是有道理的 - 我如何让它使用我自己的密钥?
gpg --list-key outputs:
$ gpg --list-key /home/stu/.gnupg/pubring.gpg
----------------------------
pub 1024R/2ADA7053 2009-05-04 uid Launchpad PPA for Aleksander Morgado
pub 2048R/17F35B46 2015-01-28 uid Stuart Axon
<stu.axon@gmail.com> uid Launchpad PPA for Stuart
Axon <stuaxo2@yahoo.com> sub 2048R/B8E8ED59 2015-01-28
Run Code Online (Sandbox Code Playgroud)
我有环境变量:
DEBSIGN_KEYID=17F35B46
Run Code Online (Sandbox Code Playgroud)
debuild 要求提供上次编辑更改日志的用户的密钥。如果您要上传到 PPA,那么您的包必须与存储库中当前的等价包不同,因此您应该编辑更改日志。
使用dch更新版本和更新日志,然后重建。debuild 会询问您的密钥。(如果您不确定要使用什么版本号,请查看Launchpad 帮助文档。)
使用-k选项来告诉debuild使用哪个键,例如
debuild -kB57F5641
Run Code Online (Sandbox Code Playgroud)
请注意,在-k和密钥 ID之间不允许有空格。
我目前使用的Xubuntu 16.04“Xenial Xerus”,并遇到了同样的问题:既debuild与debsign正在返回此密钥不可用的错误,虽然我没有创建一个本地密钥和我有它上传到道路Ubuntu的密钥服务器,太.
我已经尝试使用该-k选项手动设置我的密钥。我还将我的密钥设置为我的默认密钥,我还编辑了该debian/changelog文件,还有很多其他事情,但没有任何效果:我仍然遇到相同的错误。
...然后我意识到我使用gpg2而不是gpg创建了我的密钥。猜猜我做了什么?
首先,我打开了一个 shell 终端窗口并重命名了 gpg 二进制文件:
sudo mv /usr/bin/gpg /usr/bin/gpg.bak
Run Code Online (Sandbox Code Playgroud)然后我创建了一个gpg指向gpg2二进制文件的符号链接:
sudo ln -s /usr/bin/gpg2 /usr/bin/gpg
Run Code Online (Sandbox Code Playgroud)在我这样做之后,像debuild -S -sa,debsign some-file_source.changes等等这样的命令终于起作用了。
我不知道究竟是什么毛病debuild,debsign,dpkg-buildpackage等等,但我的印象是,他们正在发送的参数gpg虽然只有gpg2可以解析(“理解”)这样的参数。因此,创建一个符号链接(为了创建一个实际运行 gpg2 二进制文件的假 gpg 二进制文件)解决了这个问题。
虽然有更优雅的方法可以强制debsign使用gpg2:
-pgpg2选项debsign。DEBSIGN_PROGRAM=gpg2为/etc/devscripts.conf或~/.devscripts。| 归档时间: |
|
| 查看次数: |
6462 次 |
| 最近记录: |