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

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

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

我如何通过命令行做到这一点?

答案1

在某些版本中,sudo 的配置方式是,在运行命令时所有环境变量都会被清除。为了保持你的http_proxy要修复此问题,您需要编辑 /etc/sudoers,运行:

visudo

然后找到一行内容:

Defaults env_reset 

并在其后添加:

Defaults env_keep = "http_proxy ftp_proxy" 

一切将按照预期开始运作。

谢谢克多克苏在 Ubuntu 论坛中查找解决方案为了这。

为了不仅修复 apt-get,而且修复图形 X11 实用程序(例如 synaptic、mintintall 等),以下行/etc/sudoers应该可以完成这项工作:

Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"

答案2

用这个。

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

这是我使用的。效果很好。

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

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

答案3

对我有用的是:

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

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

答案4

如果您想在命令行中通过代理运行“sudo apt-get update”,请使用以下命令,

sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;

相关内容