我怎样才能设置 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"
答案3
http_proxy
通过设置、ftp_proxy
和all_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_proxy
在sudo
调用中,您可以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 特定配置文件中重复设置。