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
repo。通常,apt-get update
應該嘗試InRelease步驟,而不是找到已簽名的內聯源,然後應該嘗試Release源。我的問題是我全新的 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 等)沒有問題。
請隨時問我任何其他資訊:我對這方面的知識了解太多,所以我可能忘記了一些東西……
感謝@Law29,我了解到當其他人使用 HTTP 時,一些更新是使用 HTTPS 進行的:/
我可以檢查
curl
該 HTTPS 請求不會到達伺服器。原來是我的防火牆未配置為接受埠 443 請求…添加正確的行解決了問題!謝謝@Law29!
我有同樣的問題。導致問題的
/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;