在使用 apt-get update 时,如果已正确配置 http_proxy、https_proxy 等环境变量,通常可以正常访问代理。然而,在使用 sudo apt-get update 时,可能会遇到以下错误:
Err:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy InRelease
Clearsigned file isn't valid, got 'NOSPLIT' (does the network require authentication?)
这通常表明 sudo 运行时没有正确继承 http_proxy 相关的环境变量。
问题分析
默认情况下,sudo 会重置环境变量。可以通过以下命令验证
$ export TEST_ENV=1
$ env | grep TEST_ENV
TEST_ENV=1
$ sudo env | grep TEST_ENV
$
类似地,http_proxy、https_proxy 等代理配置也没有被 sudo 继承,从而导致代理失效。
解决方案
为了让 sudo 继承代理环境变量,可以修改 sudoers 配置。执行 sudo visudo 编辑 sudoers 文件,在 Defaults env_reset 下方添加
Defaults env_keep += "http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY"
然后再次执行 sudo apt-get update,代理配置应当生效。
1万+

被折叠的 条评论
为什么被折叠?



