为什么像 apt 和 pacman 这样的包管理器默认不使用系统代理设置?

为什么像 apt 和 pacman 这样的包管理器默认不使用系统代理设置?

需要明确的是,这个问题是关于为什么 apt 的开发人员选择这样设置。我不是问如何更改我的代理设置,而是问为什么开箱即用的默认设置让我必须配置它,而它本来可以轻松自动配置。

apt甚至有一个自动检测代理设置,我只是不明白为什么它默认情况下没有打开。

每次我在新发行版上切换到带有代理的网络(比如我的大学网络有代理,但我的家庭网络没有,所以我必须根据我连接的位置打开和关闭代理)设置完毕后,我必须跳入我的apt// pacmanwhatever conf 并设置代理。

其他程序(例如wget和 )firefox默认情况下使用我的系统代理可以很好地工作,但 apt 需要用户进行设置。为什么???

答案1

大多数命令行程序(如aptwgetcurl和许多其他程序)不使用图形桌面设置,因为 a) 它们可能不在 GUI 环境下运行,b) 每个 DE 的操作方式都不同,没有真正的一致性或标准(当然不仅仅是每个人都遵循的)。

相反,它们依赖于自己的配置文件和/或环境变量,例如、http_proxy、等。https_proxyno_proxy

到目前为止,一切都很好。问题是不可能从另一个程序更改一个程序的环境设置。因此,当网络设置发生更改时,这些变量无法自动更新 - 至少对于当前正在运行的程序(例如 bash 或其他正在运行的程序)来说是这样。

仅供参考,请参阅如何在网络连接上自动更新系统范围内的 $http_proxy 变量?对于密切相关的问题(和答案)。

相关内容