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

Ren*_*h G 95 networking

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

我怎样才能通过命令行做到这一点?

pau*_*que 108

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

visudo
Run Code Online (Sandbox Code Playgroud)

然后找到一行说明:

Defaults env_reset 
Run Code Online (Sandbox Code Playgroud)

并在其后添加:

Defaults env_keep = "http_proxy ftp_proxy" 
Run Code Online (Sandbox Code Playgroud)

事情将按预期开始工作。

感谢Ubuntu 论坛中的kdogksu找到了解决方案

为了不仅修复 apt-get 还修复图形 X11 实用程序,例如突触,mintintall,...) 中的以下行/etc/sudoers应该完成这项工作:

Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
Run Code Online (Sandbox Code Playgroud)

  • 是否也需要添加“https_proxy”? (8认同)
  • $ export http_proxy="http://user:password@proxy-server:port" 并且如果您的密码包含特殊字符--http://www.cyberciti.biz/faq/unix-linux-export-variable-http_proxy-带特殊字符/ (2认同)
  • 应该在“env_reset”之后添加“env_keep”还是放在它的位置?他们看起来彼此对立,那么保留两者是否有意义? (2认同)
  • 经过大量浏览后偶然发现了这一点。这解决了我的问题。 (2认同)

小智 49

用这个。

ubuntu@ubuntu:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
Run Code Online (Sandbox Code Playgroud)

这就是我使用的。完美运行。

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

ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/05proxy
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
Run Code Online (Sandbox Code Playgroud)

  • 我建议编辑它以解释如何将该行添加到配置文件中。尝试在命令行上运行这些行是行不通的。现在这个答案是基于一个正确的想法,但对新手没有帮助。甚至不完全清楚您是说该行*应该添加*到`apt.conf`。 (6认同)

Sam*_*Sam 29

对我有用的是:

sudo http_proxy=http://yourserver apt-get update
Run Code Online (Sandbox Code Playgroud)

这有点奇怪,因为简单地导出 http_proxy 然后运行 ​​sudo echo $http_proxy 乖乖地打印出导出的值

  • `$http_proxy` 在 sudo 运行之前就被扩展了。 (2认同)
  • 这在 Dockerfile 中效果很好! (2认同)
  • 如果需要,请不要忘记代理的端口:) (2认同)

Oli*_*Oli 13

export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

导出应该不需要sudoing,如果您的代理是匿名的,只需丢弃该proxyusername:proxypassword@部分。

  • 使用 Acquire::http::Proxy "http://MYDOMAIN\MYNAME:MYPASS@MY.PROXY.COM:MYPORT" 编辑 /etc/apt/apt.conf 怎么样? (2认同)

Pra*_*nge 10

如果您想在命令行中通过代理运行 \xe2\x80\x9csudo apt-get update\xe2\x80\x9d,请使用以下命令,

\n\n
sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;\n
Run Code Online (Sandbox Code Playgroud)\n