如何在通过代理连接的系统上使用apt-get安装软件包?


48

我有一个通过代理连接到互联网的Ubuntu 11.10系统,我想通过apt-get安装软件包。当我尝试这样做时,出现以下错误消息:

sudo apt-get install libboost-program-options-dev
[...]
Err http://gb.archive.ubuntu.com/ubuntu/ oneiric/main libboost1.46-dev i386 1.46.1-5ubuntu2
407  Proxy Authentication Required

有任何想法吗?


是他们提供的所有免费代理详细信息,以便我可以在办公室连接和下载一些软件包。
贾森·贾斯图斯(Jaison Justus)2012年

Answers:


74

这种方法对我有用.....尝试一下...

检查文件 /etc/apt/apt.conf

内容是

Acquire::http::proxy "http://<proxy>:<port>/";
Acquire::ftp::proxy "ftp://<proxy>:<port>/";
Acquire::https::proxy "https://<proxy>:<port>/";

这就是为什么您可以访问代理但无法通过代理的原因,因为没有用户名密码信息。因此,只需将这些信息放入其中即可。

Acquire::http::proxy "http://<username>:<password>@<proxy>:<port>/";
Acquire::ftp::proxy "ftp://<username>:<password>@<proxy>:<port>/";
Acquire::https::proxy "https://<username>:<password>@<proxy>:<port>/";

保存文件,您就完成了...


BROTIP:最好将这些行添加到另一个文件中/etc/apt/apt.conf.d/80proxy。这将确保在版本升级后不会丢失更改。


1
<br>如果用户名中包含“ @”字符,该怎么办。<br>例如,如果用户名是完整的电子邮件地址?

1
@饥饿,请参阅cyberbiti.biz/faq/…
Vineet Menon 2014年

2
如果您在早上这样做,别忘了删除人字形
ldgorman 2014年

获取:: socks :: proxy“ socks5:// server:port”;
克里斯·瑞夫

45

要配置临时代理,请设置http_proxy环境变量。如果代理proxy.example.com在端口上,8080并且您需要使用用户名user和密码进行身份验证pass,请运行:

sudo http_proxy='http://user:pass@proxy.example.com:8080/' apt-get install package-name

要永久设置此类代理,请创建/etc/apt/apt.conf.d/30proxy包含:

Acquire::http::Proxy "http://user:pass@proxy.example.com:8080/";

下次运行apt时,更改立即可见。


2
它仍然无法正常工作,同样的错误。我要提到我有我的代理设置全局上Applications -> System Tools -> System Settings -> Network Proxy -> Apply system Wide
719016

代理连接对我有用(已通过netcat和Squid测试)。正在使用什么代理服务器?一些代理可能需要其他身份验证方法。
Lekensteyn 2011年

+1临时解决方法对我来说是更合适的答案!
2012年

1
@Lekensteyn:为什么选择“ 30”作为前缀?我现在它定义了解析的顺序,但是:是否有大约30的代理约定?
jgomo3 2014年

1
@ jgomo3我可能查看了其他文件(或者该目录中是否存在自述文件?),然后随机选择一个值。文件按字母顺序读取。
Lekensteyn 2014年

2

一种替代方法是使用Synaptics软件包管理器,在其“首选项”中设置要连接的代理。您可以使用以下路径找到配置:设置->首选项->网络

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.