cronjob 中的 debuild -S:如何避免交互式 gpg

cronjob 中的 debuild -S:如何避免交互式 gpg

我想在夜间 cronjob 中构建并提交一个软件包到我的启动板 Ubuntu 存储库。为此,我必须

debuild -S

该软件包默认需要人工交互,因为gpg用于签名的密钥受密码保护。cronjob 也会失败,并显示以下类型的错误消息:

cannot open /dev/tty

通常gpg用于密码挑战。

我该如何设置系统来解决这些问题?

答案1

好吧,首先你需要以gpg某种方式获取进程的密码。你可以使用以下任何一种方法:

  • --passphrase-fd 通过文件描述符读取密码

  • --passphrase-file 从文件中读取密码

  • --passphrase 直接指定密码

之后,你还需要添加--batch--no-tty。请参阅 gpg 手册页以了解更多解释。

答案2

debuild用于debsign签名。根据debdesign 手册页,该选项-pprogname可用于更改签名命令。因此,您可以使用类似这样的命令,这样 gpg 就不会要求输入密码:

debuild -S -p"gpg --batch --passphrase PASS --pinentry-mode loopback"

将“--passphrase PASS”更改为您喜欢的将密码传递给 gpg 的方式。

相关内容