仅对指定存储库获取:: http :: proxy


9

有没有办法对某些存储库使用acquire :: http :: proxy?

我在具有代理服务器的网络中。因此,每个人都必须更新/etc/apt/apt.conf并添加以下内容:

Acquire::http::Proxy "http://yourproxyaddress:proxyport";
Acquire::https::Proxy "http://yourproxyaddress:proxyport";
Acquire::ftp::Proxy "http://yourproxyaddress:proxyport";
Acquire::socks::Proxy "http://yourproxyaddress:proxyport";

一切正常。

但是现在我们有很多ubuntu机器,我想做一个本地ubuntu镜像。

因此,我们应该删除那些代理行...。除了外部存储库。

那么,我该如何配置呢?

在基于RH的发行版中,您可以为yum设置全局代理,然后为每个存储库使用单独的代理设置。但是没有在Ubuntu中找到类似的东西。

Answers:


10

最终,我按需运行了它。

对于每个本地镜像,您都必须添加以下行:

Acquire::http::proxy::local.mirror.address "DIRECT";

因此,在/etc/apt/apt.conf中,我得到了类似的内容:

Acquire::http::Proxy "http://yourproxyaddress:proxyport";
Acquire::http::proxy::local.mirror.address "DIRECT";
Acquire::https::Proxy "http://yourproxyaddress:proxyport";
Acquire::ftp::Proxy "http://yourproxyaddress:proxyport";
Acquire::socks::Proxy "http://yourproxyaddress:proxyport";

这样,我可以将我们的Web代理用于外部/外部存储库,并且可以在没有Web代理的情况下使用我们的本地存储库镜像。


2
这完美地工作了,但是文档在哪里呢?
chronospoon,2015年

1
@chronospoon,我认为apt的作者认为您是Python的高手,并且会确切地了解这部分的工作原理。8
亚历克西斯·威尔克

2
另一种方式可能是这样的:Acquire::http::proxy::HOST_NAME_TO_BE_PROXIED "http://yourproxyaddress:proxyport";例如:Acquire::http::proxy::download.docker.com "http://1.2.3.4:1234";
Massood Khaari '18

-1

这就是我解决这个问题的方法。

删除apt.conf中的所有acquire行并将其恢复为原始状态

现在,将您的http_proxy导出为

export http_proxy=http://username:password@host:port 
export no_proxy=.xyz.org

其中xyz.org是您的本地域名

现在终于按如下方式运行apt-get。

sudo -E apt-get update

-E选项使http_proxy变量可用于apt-get。而已。现在,代理用于所有外部连接,而不用于内部网络。


1
此方法与系统的其余部分不兼容。
古斯塔沃·伯曼
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.