使用 dpkg-buildpackage 签名包失败,但使用 debsign 成功

Ula*_*ach 9 package-management dpkg

我有以下 gpg 密钥:

-----------------------------
pub   2048R/F516F2E7 2017-06-19
uid                  Ulad Kasach <email@provider.com>
sub   2048R/4057A05F 2017-06-19
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 来创建和签署包时dpkg-buildpackage -kF516F2E7 -S -sa,出现以下错误:

gpg: skipped "F516F2E7": No secret key
gpg: dpkg-sign.1F6Q4CLd/<package name>.dsc: clearsign failed: No secret key

dpkg-buildpackage: error: failed to sign .dsc and .changes file
Run Code Online (Sandbox Code Playgroud)

但是,如果我运行debsign -k F516F2E7 <package name>.dsc 它会成功。

有谁知道为什么会这样以及如何dpkg-buildpackage才能成功?

小智 16

直到现在我都遇到了同样的问题。

dpkg-buildpackage 似乎希望您将电子邮件地址与 -k 标志而不是密钥 ID 一起传递。

dpkg-buildpackage -kmyemail@mydomain.com
Run Code Online (Sandbox Code Playgroud)

在此之后,我没有错误。


Wel*_*993 10

尝试:

sudo debuild -b -uc -us
Run Code Online (Sandbox Code Playgroud)

该命令生成一个未签名的 deb 文件供本地使用。

  • @qwerty9967 是相同的,基于这个 man 站点:http://man7.org/linux/man-pages/man1/dpkg-buildpackage.1.html - "-us, --unsigned-source" 和 "-uc , --unsigned-changes" (2认同)

Ula*_*ach 5

虽然这并没有回答“为什么失败”的问题dpkg-buildpackage,但通过替换dpkg-buildpackagedebuild(debuild接受dpkg-buildpackage参数) 可以获得预期的结果。

tl;dr: "str.replace" dpkg-buildpackagewithdebuild以获得快速解决方案