2509manifest环境构建问题分享:capture_output与stdout冲突导致安装失败

背景
在 Ubuntu 24.04(noble)上执行 init.py 初始化并安装 openubmc-bingo 时,流程中会导入 GPG 公钥、写 APT 源、apt install 安装 bingo。

问题现象
执行过程中,GPG 导出步骤报错,后续 apt install openubmc-bingo 出现 “Unable to locate package” 或安装异常。日志关键片段如下(见附图红框):


已经提了issue和pr

## 手动修复与验证

1. 准备:变量

 KEYID=BF3B2D407FDEDEA0DC91CC9412640FBCB175287A
 KEYRING=/usr/share/keyrings/openubmc.gpg
 ARCH=$(dpkg --print-architecture)
 LIST=/etc/apt/sources.list.d/openubmc.list
 REPO=https://openubmc-apt-repo.obs.cn-north-4.myhuaweicloud.com/Ubuntu/

2. 导入并导出 GPG(确保生成 keyring 文件)

 # 导入到当前用户 keyring(可以多试几次,网络差时会超时)
 gpg --keyserver keyserver.ubuntu.com --recv-keys $KEYID
 ​
 # 导出为系统 keyring(注意用管道 + sudo gpg --dearmor 写文件)
 gpg --export $KEYID | sudo gpg --dearmor -o "$KEYRING"
 ​
 # 权限
 sudo chmod 644 "$KEYRING"
 ​
 # 验证文件确实存在且非零
 ls -l "$KEYRING"
 file "$KEYRING"

期望:能看到一个若干 KB 的 openubmc.gpg,不是 0 字节。

3. 正确写入单行 APT 源

echo "deb [arch=${ARCH} signed-by=${KEYRING}] ${REPO} noble main" | sudo tee "$LIST"
sudo apt-get update

4. 确认 apt 已认识这个包

 apt-cache policy openubmc-bingo

5. 安装并验证

 sudo apt-get install -y openubmc-bingo
 command -v bingo && bingo --version

期望/usr/bin/local/bingo 之类路径存在,并能打印版本。

可以将run_command方法中stdout和capture_output分开,不要同时存在就不会报错,但是bingo安装会出问题,此时将apt install openubmc-bingo --upgrade改为apt install -y openubmc-bingo --upgrade即可,dockerfile文件出docker环境已经成功,正在调试环境能否正常构建