apt-get 和鏡像錯誤或無法獲取
我的
/etc/apt/sources.list
包含:deb http://ubuntu.mirror.garr.it/ubuntu/ focal main deb-src http://ubuntu.mirror.garr.it/ubuntu/ focal main deb-src http://ubuntu.mirror.garr.it/ubuntu/ focal restricted universe multiverse deb http://ubuntu.mirror.garr.it/ubuntu/ focal-updates main restricted universe multiverse deb-src http://ubuntu.mirror.garr.it/ubuntu/ focal-updates main restricted universe multiverse deb http://ubuntu.mirror.garr.it/ubuntu/ focal-security main restricted universe multiverse deb-src http://ubuntu.mirror.garr.it/ubuntu/ focal-security main restricted universe multiverse deb http://ubuntu.mirror.garr.it/ubuntu/ focal-backports main restricted universe multiverse deb-src http://ubuntu.mirror.garr.it/ubuntu/ focal-backports main restricted universe multiverse deb http://archive.canonical.com/ubuntu focal partner deb-src http://archive.canonical.com/ubuntu focal partner
但是當我嘗試與軟體更新相關的任何事情時,例如,
sudo apt update --fix-missing && sudo apt upgrade
我在終端上得到以下輸出:sudo apt update --fix-missing && sudo apt upgrade Err:1 http://archive.canonical.com/ubuntu focal InRelease Temporary failure resolving 'proxy_server' Err:2 http://ubuntu.mirror.garr.it/ubuntu focal InRelease Temporary failure resolving 'proxy_server' Err:3 http://ubuntu.mirror.garr.it/ubuntu focal-updates InRelease Temporary failure resolving 'proxy_server' Err:4 http://ubuntu.mirror.garr.it/ubuntu focal-security InRelease Temporary failure resolving 'proxy_server' Err:5 http://ubuntu.mirror.garr.it/ubuntu focal-backports InRelease Temporary failure resolving 'proxy_server' Reading package lists... Done Building dependency tree Reading state information... Done All packages are up to date. W: Failed to fetch http://ubuntu.mirror.garr.it/ubuntu/dists/focal/InRelease Temporary failure resolving 'proxy_server' W: Failed to fetch http://ubuntu.mirror.garr.it/ubuntu/dists/focal-updates/InRelease Temporary failure resolving 'proxy_server' W: Failed to fetch http://ubuntu.mirror.garr.it/ubuntu/dists/focal-security/InRelease Temporary failure resolving 'proxy_server' W: Failed to fetch http://ubuntu.mirror.garr.it/ubuntu/dists/focal-backports/InRelease Temporary failure resolving 'proxy_server' W: Failed to fetch http://archive.canonical.com/ubuntu/dists/focal/InRelease Temporary failure resolving 'proxy_server' W: Some index files failed to download. They have been ignored, or old ones used instead. Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
我嘗試安裝的任何東西都會出現類似的問題:
$ sudo apt-get install indicator-cpufreq Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package indicator-cpufreq
嘗試從
Software update
應用程序更改伺服器卡在記憶體刷新中,或最終返回類似於Failed to fetch one
(視窗不允許我複制和粘貼輸出錯誤)的錯誤。有關我的系統的更多資訊:
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.4 LTS Release: 20.04 Codename: focal
什麼應該進入
services.list
andproxy
,問題可能是什麼?編輯#1:我認為我
/etc/apt/apt.conf
錯了,我希望能在該文件中提供一些幫助。echo "$http_proxy"
不返回任何東西,也不返回任何東西env | grep -i proxy
。設置 –> 代理網路設置為禁用,但如果我檢查Manual
我進入proxy-server-ip
“代理 HTTP”欄位並且8080
是埠。編輯#2:我的
/etc/apt/apt.conf.d/proxy.conf
包含兩行:Acquire::http::Proxy "http://proxy_server:port/"; Acquire::https::Proxy "http://proxy_server:port/";
看起來您的機器正在嘗試解析一個名為
proxy_server
. 嘗試ping -c 5 proxy_server
查看它是否列出了 IP,以及是否可以通過 ICMP 訪問它。如果您確實想要使用代理,請在/etc/hosts
或中檢查該 IPgrep 'proxy_server' /etc/hosts
,並確保您可以使用或proxy_server
通過 TCP連接到列出的 IP 。埠通常是 HTTP 的 8080 或 SOCKS 的 1080,但實際上可以設置為任何值。您將從配置文件中獲取埠資訊,詳細步驟如下。telnet proxy_server [port]``nc proxy_server:[port]``apt
如果可以 ping
proxy_server
通,請確保代理正常工作並偵聽您在任何文件中列出的正確埠/etc/apt
。要列出這些文件,請執行grep -rl 'proxy_server' /etc/apt
.如果您不打算使用代理進行連接,那麼
grep -rl 'proxy_server' /etc/apt
查看哪些文件列出了該字元串。要刪除包含該字元串的所有行,請以 root 身份執行以下命令grep -rl 'proxy_server' /etc/apt | xargs -I file sed -i '/proxy_server/d' file
,然後重試。如果輸出中沒有列出任何文件
grep
,則執行sudo http_proxy= https_proxy= apt update --fix-missing && sudo http_proxy= https_proxy= apt upgrade
,然後重試。如果可行,那麼您正在環境中的某處設置
http_proxy
和/或變數,很可能是在 中,但實際上,這些變數可以設置在各種獲取源的文件中)。有關這些文件的更多資訊,請查看此答案。要查看這些變數是否設置在 中,您可以執行以下命令來刪除它們,或者執行下面的腳本,這樣會更安全一些。https_proxy``/root/.bashrc``/root/.bashrc
立即刪除
http_proxy
和https_proxy
從中刪除的命令.bashrc
:sudo sed -i '/http_proxy/d;/https_proxy/d' /root/.bashrc sed -i '/http_proxy/d;/https_proxy/d' ~/.bashrc
注意:我列出您自己的原因
~/.bashrc
是因為有時在某些情況下,root 設置為繼承使用者的配置文件。在嘗試刪除它們之前檢查這些行是否確實存在的腳本(請注意,如果這些行不存在,前面的命令不會失敗,但這實際上會在輸出中返回這些行,以便您知道它們存在的位置:
#!/bin/sh if grep -E '(http_proxy)|(https_proxy)' /root/.bashrc; then sudo sed -i '/http_proxy/d;/https_proxy/d' /root/.bashrc fi if grep -E '(http_proxy)|(https_proxy)' ~/.bashrc; then sed -i '/http_proxy/d;/https_proxy/d' ~/.bashrc fi
或者,如果您更喜歡可以複製/粘貼的單線:
if grep -E '(http_proxy)|(https_proxy)' /root/.bashrc; then sudo sed -i '/http_proxy/d;/https_proxy/d' /root/.bashrc; fi; if grep -E '(http_proxy)|(https_proxy)' ~/.bashrc; then sed -i '/http_proxy/d;/https_proxy/d' ~/.bashrc; fi
**重要提示:**如果您在這些
.bashrc
文件中直接有任何用於切換代理的函式或別名,它將刪除任何包含http_proxy
或的行https_proxy
。在您的情況下,將上述命令/腳本中的http_proxy
和替換為.https_proxy``proxy_server
您的特定單線將如下所示:
if grep 'proxy_server' /root/.bashrc; then sudo sed -i '/proxy_server/d' /root/.bashrc; fi; if grep 'proxy_server' ~/.bashrc; then sed -i '/proxy_server/d' ~/.bashrc; fi
**編輯:**我根據您的評論更正了該
grep
命令,在重新閱讀您的問題後,如果您根本不想連接到代理,只需mv /etc/apt/apt.conf.d/proxy.conf /tmp/
重新執行該命令,它應該可以正常工作。如果這是唯一出現的地方proxy_server
,那麼我不確定為什麼刪除這些行不起作用,但它可能會proxy.conf
被記憶體在某個地方。通過完全刪除文件,您的代理設置可能會重新初始化。問題的實際根源是您在 中具有虛擬/範例設置
/etc/apt/apt.conf.d/proxy.conf
,這實際上是在嘗試解析proxy_server
埠上的主機port
。如您所知,proxy_server
它實際上並不存在,並且port
必須是實際的埠號才能apt
成功連接。通過刪除該
proxy.conf
文件(根本不需要該文件apt
,並且預設情況下通常不存在),您應該能夠解決此問題。**編輯#2:**如果您確實需要連接到代理,那麼只需保留
/etc/apt/apt.conf.d/proxy.conf
並替換proxy_server
為代理伺服器的實際 IP 或主機名以及port
實際埠號。或者,您可以替換port
為實際的埠號並創建一個條目/etc/hosts
以proxy_server
指向實際代理伺服器的正確 IP 地址。**最終編輯:**與使用者聊天后,他們刪除了
/etc/apt/apt.conf.d/proxy.conf
但仍然遇到同樣的問題,除了沒有解決proxy_server
,它沒有解決proxy.server
,這讓我相信代理設置是在另一個位置設置的。我讓他們跑
grep -rlE 'Acquire::.*::Proxy' /etc/apt/
,它回來了/etc/apt/apt.conf
。然後我指示他們執行
grep -nE 'Acquire::.*::Proxy' /etc/apt/apt.conf
,它返回以下內容:... 5:Acquire::http::Proxy "http://user:password@proxy.server:port/"; 6:Acquire::https::Proxy "http://user:password@proxy.server:port/"; ...
這基本上與 相同
/etc/apt/apt.conf.d/proxy.conf
,只是主機名是proxy.server
而不是proxy_server
。仍然是虛擬/範例設置。在指示他們註釋掉第 5 行和第 6 行並重新執行 的初始命令後sudo apt update --fix-missing && sudo apt upgrade
,他們確認它工作正常並獲取更新。