it-swarm.cn

如何在命令行中通过代理运行“Sudo apt-get update”?

在我的办公室,我想通过(wget)更新和下载,在这里他们使用代理?

我如何通过命令行执行此操作?

77
Renjith G

在某些版本中,配置Sudo的方式是在运行命令时清除所有环境变量。要保留http_proxy的值并修复此问题,您需要编辑/ etc/sudoers,运行:

visudo

然后找到一条说明:

Defaults env_reset 

并在它之后添加:

Defaults env_keep = "http_proxy ftp_proxy" 

事情将按预期开始工作。

感谢kdogksu在Ubuntu论坛中为此找到 解决方案

为了不仅修复apt-get而且修改图形X11 utils,例如synaptic,mintintall,...)/etc/sudoers中的以下行应该完成这项工作:

Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
91
paulo.albuquerque

用这个。

[email protected]:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:Passwo[email protected]:8080";

这就是我使用的。完美的工作。

Apt还允许将个别设置放在/etc/apt/apt.conf.d/下的文件中,因此这与上面的效果完全相同,但如果.conf文件中有其他行,则可能更容易维护:

[email protected]:~$ cat /etc/apt/apt.conf.d/05proxy
Acquire::http::Proxy "http://Username:[email protected]:8080";
39
John Cartwright

对我有用的是:

Sudo http_proxy=http://yourserver apt-get update

这有点奇怪,因为只需导出http_proxy,然后运行Sudo echo $ http_proxy,乖乖地打印出导出的值

18
Sam
export http_proxy=http://proxyusername:[email protected]:proxyport
Sudo apt-get update

导出不应该需要Sudoing,如果您的代理是匿名的,只需抛弃proxyusername:[email protected]部分。

11
Oli

如果是临时配置,你可以试试这个:Sudo bash -c'htt_proxy =“http:// <proxy_Host>:<proxy_port>/“apt-get update”

您需要这个,因为需要为“root”帐户定义环境变量。以前做和导出不应该工作。

对于永久配置,您必须修改系统文件。这已在下面的答案中描述 如何检查网络代理是否真的应用?

3
Huygens

你尝试过编辑/etc/apt/apt.conf吗?我用它在我们的公司代理后面使用apt。

Acquire::http::proxy "http://user:[email protected]:port/";

我相信apt会使用此值,除非在您的Shell环境中定义$ http_proxy(即$ http_proxy优先)。

3
Jon Brett

Ubuntu对身份验证代理非常不友好。我在工作中使用Ubuntu笔记本电脑,破损次数令人难以置信。

Synaptic,Apt,Firefox,Chromium等都使用不同的方法来指定代理,并且没有地方可以安全地指定凭证。

关于这个主题的一些错误: https://bugs.Edge.launchpad.net/ubuntu/+source/msttcorefonts/+bug/22007

https://bugs.Edge.launchpad.net/ubuntu/+source/apt-cacher/+bug/198138

https://bugs.Edge.launchpad.net/ubuntu/+source/apt/+bug/433827

https://bugs.Edge.launchpad.net/ubuntu/+source/b43-fwcutter/+bug/6836

Oli建议使用导出是唯一一种模糊安全的方法。如果代理服务器使用辅助身份验证来最小化主要身份验证服务器(例如,可能是Active Directory)上的负载,则有时也可能“捏造”代理支持。这是第一个代理连接由代理对AD进行身份验证的地方,然后在设定的时间段(通常为5分钟)内,所有其他连接都“被信任”为该用户。因此,您可以打开firefox,浏览互联网(任何地方都可以),然后通过指定代理来尝试您的实用程序(wget,synaptic等),但将用户名留空。

Ubuntu通常对任何企业环境都是敌对的,因为它允许很容易地读取密码。 Seahorse是一个罪魁祸首,但网络管理员也很震惊 - 连接到任何经过PEAP认证的网络,你只需将密码存储在applet中,任何人都可以看看谁可以借用你的笔记本电脑。显然笔记本电脑共享在Linux领域被认为是亵渎,因为海马开发者拒绝了不安全的说法。在那之后,我没有心脏联系网络经理开发人员。

3
Scaine