我想在夜间 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 的方式。