我的/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
and proxy
,问题可能是什么?
编辑#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
:注意:我列出您自己的原因
~/.bashrc
是因为有时在某些情况下,root 设置为继承用户的配置文件。在尝试删除它们之前检查这些行是否确实存在的脚本(请注意,如果这些行不存在,前面的命令不会失败,但这实际上会在输出中返回这些行,以便您知道它们存在的位置:
或者,如果您更喜欢可以复制/粘贴的单行文字:
重要提示:如果您在这些
.bashrc
文件中直接有任何用于切换代理的函数或别名,它将删除任何包含http_proxy
或的行https_proxy
。在您的情况下,将上述命令/脚本中的http_proxy
和替换为.https_proxy
proxy_server
您的特定单线将如下所示:
编辑:我根据您的评论更正了该
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
,它返回以下内容:这基本上与 相同
/etc/apt/apt.conf.d/proxy.conf
,只是主机名是proxy.server
而不是proxy_server
。仍然是虚拟/示例设置。在指示他们注释掉第 5 行和第 6 行并重新运行 的初始命令后sudo apt update --fix-missing && sudo apt upgrade
,他们确认它工作正常并获取更新。部分答案:
终端输出表明您在某处配置了代理服务器。由于您没有提供完整的 apt 配置,请查看如何配置代理服务器 apt(例如,此处,第一个 Google 结果),然后检查您的完整 apt 配置
/etc/apt
,看看您是否在某处有一些代理设置.如果没有,下一步就是在验证没有设置代理之后
sudo env
查看环境。sudo
当前问题中没有足够的信息来确定实际原因,这需要调试。
如果 apt 配置中没有任何代理相关的内容
sudo env
,并且任何地方都没有代理设置,那么下一步是查看man apt.conf
并启用调试输出。Debug::Acquire::http
从和开始Debug::Acquire::https
。如果你真的有
获取::http::Proxy "http://user:[email protected]:port/";
在您的 apt 配置文件中,那么这根本没有意义:引号内的内容只是您的实际用户名、实际密码、服务器的实际主机名和实际端口的占位符。
因此,如果您没有需要使用的具体代理服务器,并且您知道您的用户名、密码和服务器地址,那么只需删除此文件即可。
目前,apt 尝试向
proxy.server
(字面意思proxy.server
)发出请求,当然这个主机名不存在,因此无法连接,因此无法下载任何内容。