最近,在构建基于Ubuntu / Debian的容器时出现此错误:
Warning: apt-key output should not be parsed (stdout is not a terminal)
Executing: /tmp/apt-key-gpghome.jZsMrv3GZH/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
mgpg: cannot open '/dev/tty': No such device or address
当我调用诸如此类的apt-key命令时:
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
我可以将apt与不受信任的选项一起使用,因此我根本不需要密钥,但这听起来是一个肮脏的解决方案。
当直接使用gpg时,我可能可以使用--no-tty或--batch选项对其进行修复,但是使用apt-key命令(它是pgp的包装器)来实现此目的的一种较干净的方法是什么? / p>
答案 0 :(得分:0)
我想我明白了,至少在修复GPG或APT-KEY之前,我可以使用此变通办法来修改apt-key脚本。
对于更高级的apt键,此方法可以在debian上快速测试:
sed -i "s%{GPG_EXE}\")' --%{GPG_EXE}\")' --batch --%g" /usr/bin/apt-key
虽然对于基本的apt-key来说它可以工作(但请耐心等待,因为我不记得我在哪里看到了这个简单的变体):
sed -i 's%GPG_CMD="gpg %GPG_CMD="gpg --batch %g' /usr/bin/apt-key
您需要特权来写入/ usr / bin / apt-key,使其以root身份运行或使用 sudo