从debuild自动签名包文件并使用dput上传
我已经为我正在开发的I库创建了一个源包。 我使用debuild
来构建它然后我可以使用debuild
成功上传它。
现在我想设置它,以便我可以从Jenkins自动执行此操作。 我遇到的主要问题是签署.dsc和.changes文件。 我想要做的是用gpg
签名包而不是debuild
这样做。 这样我就可以使用gpg选项--passphrase-fd 0
自动签名文件。
所以我使用debuild
选项-uc
和-us
然后使用gpg
清除文件。 但是当我这样做时,它会创建一个单独的.dsc.asc
和source.changes.asc
。 当我尝试使用dput
上传时,我得到了错误
Checking signature on .changes gpg: no valid OpenPGP data found. gpg: the signature could not be verified. Please remember that the signature file (.sig or .asc) should be the first file given on the command line.
这似乎表明我应该将.asc
文件列为.asc
的参数但我不能dput
工作。
简单的答案是:Launchpad每日构建,他们相当安全地为您完成所有这些。
如果你想从Jenkins做源代码上传,那么我建议为这个Jenkins工作创建一个密钥。 如果Jenkins的工作必须知道密码短语,那么对它进行密码短语就不会极大地提高安全性,所以人们不妨保护它不受保护。
如果您确实想手动签署.dsc
和.changes
文件,请使用gpg --clearsign
对其进行gpg --clearsign
,并将.asc
文件重命名为.asc
文件。
我用debsign
和-p
选项找到了以下解决方案:
- 正如你所提到的,使用没有签名的
debuild
-
使用然后使用
-p
选项设置debsign
,设置要使用的密码,就像这样debsign \ -p'gpg --passphrase-file /home/myname/my_passphrase_file.txt --batch --no-use-agent'\ -S -kMYKEYID package_source.change
仍然有一些其他问题,但这部分看起来像工作。 直接使用GPG签名文件不起作用,因为在debuild
期间计算的校验和被更改。
我总是喜欢用密码存储密钥。