You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

dpkg-buildpackage间隔报错failed to sign .dsc file问题咨询

Debian批量构建偶现GPG签名断管问题解决方案

报错信息如下:

gpg: signing failed: Broken pipe
gpg: dpkg-sign.fwxloLTb/libshipscomms_4.00-1.dsc: clear-sign failed: Broken pipe
dpkg-buildpackage: error: failed to sign .dsc file

该间隔性报错的根因分为两类:

  1. 非交互脚本环境下GPG未绑定正确TTY,首次调用签名时密码输入组件无法正常唤起导致进程中断,报错后GPG代理已完成初始化,二次调用可复用会话因此正常运行
  2. 修改changelog后首次构建时,deb源码元数据校验会重新计算所有文件哈希,GPG签名进程等待超时被主动断管,二次构建可复用已生成的临时缓存,无阻塞因此正常

修复方案

  • 脚本开头提前绑定GPG TTY环境变量,确保签名进程可正常关联终端:
export GPG_TTY=$(tty)
  • 执行构建命令前先预热GPG代理,避免首次调用超时:
echo "gpg agent prewarm" | gpg --clearsign > /dev/null 2>&1
  • 如果你使用无密码的签名密钥,可以直接在构建命令中添加批处理参数跳过交互校验:
dpkg-buildpackage -k<你的签名密钥ID> --sign-command="gpg --batch --no-tty"
  • 如需长期避免同类问题,可以调整GPG代理缓存时长,修改~/.gnupg/gpg-agent.conf添加如下配置:
default-cache-ttl 3600
max-cache-ttl 86400

修改完成后执行gpg-connect-agent reloadagent /bye即可生效。

内容的提问来源于stack exchange,提问作者Dale Amon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 03:39:02