是否可以指定 yum 应绕过代理配置的域?恐怕这是不可能的……
我读到可以使用环境变量HTTP_PROXY
,NO_PROXY
这是最优雅的解决方案吗?
[编辑]
我尝试使用环境变量的解决方案:
export HTTP_PROXY=http://user:pass@host:port
export http_proxy=http://user:pass@host:port
export no_proxy=.domain
export NO_PROXY=.domain
Yum 使用代理,但是 repos *.domain 不会被绕过。
[解决方法]
使用http://cntlm.sourceforge.net/我可以配置应忽略哪个域。但这仅适用于需要 NTLM 身份验证的代理...
答案1
我无法使用您在此处描述的环境变量来实现这一点。不过,Yum 本身支持代理,您应该能够执行以下操作:
proxy=http://proxy:port
yum.conf
然后加入
proxy=_none_
进入您不想通过全局代理访问的 repo 定义。这在 yum.conf 手册页中有详细说明(尽管很简洁)。
答案2
如果我正确理解了这个问题,期望的行为是
软件包通过代理进行拉取。
软件包.internal.lan无需通过代理,直接进行。
我刚刚来到这里,用谷歌搜索了如何自己做这件事,并使用上述信息来实现我想要的,但我不确定上述答案是否完整。
为此我使用了以下内容。
export HTTP_PROXY=http://myproxy.internal.lan:port
export no_proxy=internal.lan
yum install package1 package2
包1通过代理从互联网上获取数据,
包2没有通过代理就从我的本地镜像中被拉出来了。
答案3
fedora 上 yum 的替代品是 dnf。
对于 dnf_none_
会导致错误
您需要将代理设置为空字符串
proxy=
答案4
您只需在 repo 文件中指定它即可。例如:
[hduser@n0 cloudera-manager-installer]$ cat /etc/yum.repos.d/cloudera-cdh4.repo
[cloudera-cdh4]
name=Cloudera's Distribution for Hadoop, Version 4
baseurl=http://"yourhost"/cdh4/
gpgcheck = 0
enabled=1
proxy=_none_