docker - apt-key 最近在 docker 中失败

标签 docker ubuntu debian gnupg apt-key

<分区>

最近,我在构建基于 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/

上一篇:python - 用户警告 : failed to import the optional _tifffile C extension module

下一篇:node.js - 尝试在 Ubuntu 上安装 Node 时出错

相关文章:

docker - 在 docker-compose 的 makefile 中导出当前用户 ID

docker - 如何为多个Docker Swarm堆栈提供全局.htpasswd文件?

ubuntu - Golang - 通过 Upstart 运行时找不到命令 "go"

Bash Shell 当前日期减去天数

docker - docker如何使用带引号的新命令提交docker

macos - Apache 和 passenger 在 Docker mac 和 ubuntu 上的行为不同

perl - 本地化 $0 后显示原始参数

ubuntu - 在 ubuntu 14.4 上安装 libpcre3-dev 时出错

php - 将 Bash 与 PHP 集成

python - Googleapiclient 和 python3