




















windows开启了网络代理,且wsl已设置网络为镜像模式,但是安装了第三方软件源(被墙)后却无法通过sudo apt update更新缓存。
APT 有自己的配置体系:APT 使用独立的配置文件(如 /etc/apt/apt.conf)或专用命令行参数,不会自动继承 shell 的 http_proxy。
apt 命令本身确实支持读取 http_proxy 和 https_proxy 环境变量。但是,执行 apt 必须拥有 root 权限(即使用 sudo),而 sudo 默认会“清空”环境变量。sudo 为了安全,默认只保留极少数环境变量(如 PATH、TERM),将 http_proxy 等绝大多数变量丢弃。
在 apt 的命令行配置中,Acquire 是 APT 内部负责文件获取(下载)子系统的名称。
简单来说,Acquire 就是 APT 的“下载引擎”,所有通过网络获取软件包、索引文件(Packages、InRelease 等)的操作,都由这个子系统负责。
在 WSL 中执行
sudo bash -c 'echo "Acquire::http::Proxy \"http://127.0.0.1:你的代理端口/\";" > /etc/apt/apt.conf.d/95proxies'
sudo bash -c 'echo "Acquire::https::Proxy \"http://127.0.0.1:你的代理端口/\";" >> /etc/apt/apt.conf.d/95proxies'
注意
http必须是小写,因为 APT 的配置字段是区分大小写的。
验证:
cat /etc/apt/apt.conf.d/95proxies
然后再次执行 sudo apt update
删除代理配置文件(可选):
sudo rm /etc/apt/apt.conf.d/95proxies
sudo apt -o Acquire::http::Proxy="http://127.0.0.1:你的代理端口" -o Acquire::https::Proxy="http://127.0.0.1:你的代理端口" update
⚠️只在
apt update这一个命令的执行过程中生效, 之后apt install <package>还是不会走代理导致失败。
sudo http_proxy=http://127.0.0.1:你的端口 https_proxy=http://127.0.0.1:你的代理端口 apt update
⚠️只在
apt update这一个命令的执行过程中生效, 之后apt install <package>还是不会走代理导致失败。
export http_proxy="http://127.0.0.1:你的代理端口"
export https_proxy="http://127.0.0.1:你的代理端口"
sudo -E apt update
⚠️只在
apt update这一个命令的执行过程中生效, 之后apt install <package>还是不会走代理导致失败。
在 apt update 的输出中,这四种状态标识代表了 APT 在连接软件源服务器并比对本地缓存时的具体处理结果。简单来说:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。