<分区>
<分区>
最近,我在构建基于 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 与不受信任的选项一起使用,这样我就根本不需要 key ,但这听起来是一个肮脏的解决方案。
当直接使用 gpg 时,我可能可以使用 --no-tty 或 --batch 选项来修复它,但是使用作为 pgp 包装器的 apt-key 命令来完成它的比较干净的方法是什么?
最佳答案
我想我明白了,至少在修复 GPG 或 APT-KEY 之前,我可以使用这个解决方法,它会修改适当的 apt-key 脚本。
对于更高级的 apt-key 这将起作用,在 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
关于docker - apt-key 最近在 docker 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53935949/