为什么 add-apt-repository 现在无法检索我的代理服务器后面的密钥,但我可以更新软件包列表并手动接收密钥?

为什么 add-apt-repository 现在无法检索我的代理服务器后面的密钥,但我可以更新软件包列表并手动接收密钥?

我在学校的代理服务器后面使用 Ubuntu 14.04 和 12.04 以及最新更新。几个月前我没有遇到任何问题。然而,在过去的两个月里,当我尝试添加存储库时,没有add-apt-repository检索到密钥。我可以sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEY成功使用,但这很烦人。我创建了添加 PPA、安装软件等的脚本,但现在由于这个问题而失败了。

我是否应该提交错误报告?如果是,有人能告诉我提交报告的地方吗?

以下是我尝试添加 my-weather-indicator 的 PPA 时终端的输出:

$ sudo add-apt-repository ppa:atareao/atareao
 来自 atareao 的申请
 更多信息:https://launchpad.net/~atareao/+archive/ubuntu/atareao
按 [ENTER] 继续或按 ctrl-c 取消添加

gpg:密钥环“/tmp/tmp16ytp9px/secring.gpg”已创建
gpg:密钥环“/tmp/tmp16ytp9px/pubring.gpg”已创建
gpg: 从 hkp 服务器 keyserver.ubuntu.com 请求密钥 36FD5529
gpgkeys:无法检索密钥 A3D8A366869FE2DC5FFD79C36A9653F936FD5529
gpg:未找到有效的 OpenPGP 数据。
gpg: 处理总数:0

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36FD5529
正在执行:gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.fla11h2USs --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d/steam.gpg --keyserver keyserver.ubuntu.com --recv-keys 36FD5529
gpg: 从 hkp 服务器 keyserver.ubuntu.com 请求密钥 36FD5529
gpg:密钥 36FD5529:公钥“Launchpad PPA for atareao”已导入
gpg: 处理总数:1
gpg:已导入:1(RSA:1)

更新:我能够使用-Esudo 的参数让它工作,所以有效的命令是sudo -E add-apt-repository ppa:atareao/atareao。但是,我不明白为什么以前没有这个命令就可以工作,而现在却不行了。此外,这似乎无法解释为什么其他带有该参数的命令在sudo没有该参数的情况下也可以工作-E。此解决方案来自 Ubuntu 10.10。

答案1

您面临两个问题:

  1. add-apt-repository是依靠正确的价值观而存在http_proxyhttps_proxy

  2. sudo不会使用所有当前环境值。可能出于安全原因。有两种方法可以克服这个问题:

    1. 称呼sudo -E add-apt-repository <additional-options>

      这将使用所有当前环境。

    2. 您也可以配置自动sudo复制。请执行以下操作:http_proxyhttps_proxy

      sudo visudo
      

      添加以下行:

      Defaults env_keep +="http_proxy"
      Defaults env_keep +="https_proxy"
      

      明显抄袭自这个答案

相关内容