我的Linux(redhat6)服务器必须使用http代理连接到外部世界。虽然它适用于像wget这样的其他东西,但它不适用于阴谋集团。
cabal update -v3
显示如下错误:
407 - 需要代理身份验证cabal:无法下载 http://hackage.haskell.org/packages/archive/00-index.tar.gz: ErrorMisc“不成功的HTTP代码:407”
我尝试将http_proxy环境变量更改为http:// user:passwd at proxy:port格式,但它也不起作用。
同样的问题已经被问到here
但我不允许使用像polipo这样的代理服务器,还有其他方法可以让代理服务器在代理服务器之后工作吗?
答案 0 :(得分:2)
您可以使用cntlm与代理进行对话。它将处理身份验证问题。配置并安装cntlm
后,通过修改http_proxy
,https_proxy
等来设置新的环境变量。
之后你的cabal
命令应该可以运行。
答案 1 :(得分:2)
这里有一些详细的程序:
从here下载cntlm 它是一个没有其他依赖关系的c程序,所以很容易制作,只需按照下载包中的说明进行操作。
安装cntlm后,请按照Colonel Panic的answer进行操作。显然在linux上你需要将cntlm.exe更改为./cntlm,我将配置文件命名为cntlm.conf
cntlm的默认侦听端口是3124,如果您不能使用该端口,请将其更改为其他类似53124,然后将其添加到您的cntlm.conf或cntlm.ini文件中:
Listen 127.0.0.1:53124
在后台启动cntlm:
./cntlm -c cntlm.conf
更改您的http_proxy环境变量以与cntlm进程而不是真实代理进行通信。
export http_proxy=http:// 127.0.0.1:53124
这就是它,cabal将一如既往地发挥作用。
答案 2 :(得分:-1)
您也可以直接在系统设置中设置http_proxy:
http_proxy=http://username:password@hostname:port