apt-get update 时跳过 InRelease 步骤(直接进入 Release)

apt-get update 时跳过 InRelease 步骤(直接进入 Release)

我刚刚在服务器机箱上安装了全新的 Xenial,并几乎立即尝试在其上安装 Docker。

Docker 安装页面说你必须创建一个/etc/apt/sources.list.d/docker.list文件并在其中添加 docker repo 源:

deb https://apt.dockerproject.org/repo ubuntu-xenial main

然后,只需完成正常apt-get update & install流程即可。此步骤通常非常简单,但在此全新的 xenial 上,此update步骤始终超时:

Failed to fetch https://apt.dockerproject.org/repo/dists/ubuntu-xenial/InRelease  Connection timed out after 120000 milliseconds

这里的重点是Docker 告诉我他们没有InRelease仓库。通常情况下,apt-get update应该尝试正在发布步骤,找不到已签名的内联源,然后应该尝试发布来源。

我的问题是我的全新 Xenial 停在那里而没有尝试Release源代码。

我怎样才能强制 Ubuntu 检查 https://apt.dockerproject.org/repo/dists/ubuntu-xenial/Release源而不是https://apt.dockerproject.org/repo/dists/ubuntu-xenial/InRelease

如果需要的话,结果如下uname -a

Linux sd-83589 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

我安装其他软件包(zsh、screen 等等)没有遇到任何问题。

请随时向我询问任何其他信息:我对此的了解远远超出了我的能力范围,所以我可能忘记了一些事情......

答案1

感谢@Law29,我了解到有些更新是通过 HTTPS 进行的,而其他更新则使用 HTTP :/

我可以检查curlHTTPS 请求是否无法到达服务器。

原来是我的防火墙没有配置为接受端口 443 请求...添加正确的行解决了问题!谢谢@Law29!

答案2

我有同样的问题。/etc/apt/apt.conf问题原因如下:

Acquire::http::Proxy "http://mirrors.aliyun.com/";

删除此文件后,现在一切正常。


更新

我还可以通过添加另一行来绕过 docker repo:

Acquire::http::Proxy "http://mirrors.aliyun.com/";
Acquire::http::Proxy::apt.dockerproject.org DIRECT;

相关内容