fedora
这个是个很好的问题,归根结底是因为 yay 作为 AUR 助手和包构建工具,是运行在用户空间的 Bash 脚本工具,它默认就继承了当前终端的环境变量(包括 HTTP 代理),而不像 dnf、yum 这些系统级工具那样绕过环境变量。
✅ 简单对比:yay vs dnf/yum
| 工具 | 默认是否继承终端代理变量(如 HTTP_PROXY) |
是否系统级服务 | 是否需要配置代理 |
|---|---|---|---|
yay |
✅ 是的,继承环境变量 | ❌ 否(用户空间工具) | 不需要额外配置 |
makepkg |
✅ 是的 | ❌ 否 | 不需要额外配置 |
dnf / yum |
❌ 默认不会继承环境变量 | ✅ 是 | 需要显式配置 proxy= |
apt |
❌ 默认不会自动继承 | ✅ 是 | 需要配置 /etc/apt/apt.conf |
curl(终端) |
✅ 继承(除非用 sudo) |
❌ 否 | 环境变量即可 |
🧠 原因总结
yay是用户空间工具,它内部调用的是curl,git,makepkg, 等,全部都会继承你当前 shell 的环境变量。dnf是系统级包管理器,它不安全地信任用户环境变量可能会有风险(例如被非特权用户恶意设置),所以默认忽略终端变量,必须在配置文件中显式设置代理。
✅ 你可以用 yay 下载 VSCode 吗?
实际上,在 Arch 系下,你完全不需要通过 .rpm 装 VSCode。直接用 yay 安装如下版本即可:
- 微软官方打包的版本(带官方签名):
- 开源社区打包的版本(移除了微软遥测):
✅ 如果你确实要在 RHEL/CentOS 上解决代理问题
你只要加一行配置到 /etc/dnf/dnf.conf 中即可:
或者临时使用: