【问题标题】:apt-key fails recently inside docker [duplicate]apt-key 最近在 docker 内失败 [重复]
【发布时间】:2018-12-26 18:52:50
【问题描述】:

最近,我在构建基于 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 的包装器)来做这件事有点干净的方法是什么?

【问题讨论】:

    标签: docker ubuntu debian gnupg apt-key


    【解决方案1】:

    我想我明白了,至少在 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 1970-01-01
      • 1970-01-01
      • 2017-06-23
      • 2021-11-28
      相关资源
      最近更新 更多