VirtualBox Ubuntu 上的 apt-get 代理

VirtualBox Ubuntu 上的 apt-get 代理

我怎样才能设置 apt-get 在代理后面工作?

答案1

http_proxy="http://host:port" apt-get something

应该管用。

如果您需要身份验证,请尝试

http_proxy="http://user:pass@host:port" apt-get something

如果您希望这是永久性的,您可能应该设置 http_proxy(和 ftp_proxy?)变量,~/.bashrc以便所有支持代理的应用程序将来都能工作,例如“wget”。

答案2

在 /etc/apt/apt.conf 中,添加以下行:

Acquire::http::Proxy "http://MYDOMAIN\MYNAME:[email protected]:MYPORT"

从:http://ubuntuforums.org/showthread.php?t=96802

(注:完全剽窃自这个答案我在 SF 上提出的类似问题。感谢灰熊

答案3

http_proxy通过设置、ftp_proxyall_proxy环境变量来指定代理,可以是本地的(例如 在 中~/.bashrc)也可以是全局的(例如 在 中/etc/bash.bashrc)。几乎所有的网络软件包(如 apt-get、wget、curl 等)都遵循这些设置:

# HTTP proxy without authentification
export http_proxy="http://host:port"
# HTTP proxy with authentification
export http_proxy="http://user:pass@host:port"

但是,以这种方式设置它们在运行时没有帮助sudo apt-get ...- 这是由于以下行/etc/sudoers

Defaults env_reset

这行重置出于安全原因,使用时必须考虑所有环境变量sudo。为了保持http_proxysudo调用中,您可以env_reset通过以下方式指定异常env_keep

# Exception specific to the command apt-get
Defaults!/usr/bin/apt-get env_keep="http_proxy https_proxy ftp_proxy"
# Exception specific to the user joe
Defaults:joe env_keep="http_proxy https_proxy ftp_proxy"

这样,你就可以apt-get尊重全球的apt-get设置 http_proxy,而不是在某些神秘的 apt 特定配置文件中重复设置。

相关内容