如何让Cabal绕过我的Windows代理设置?

时间:2009-10-11 16:14:51

标签: haskell cabal

使用Cabal检索软件包时,我经常会收到此消息的错误:

  

用户错误(Codec.Compression.Zlib:   压缩流的过早结束)

看起来Cabal正在使用我的Windows网络代理设置(对于Privoxy)。

从挖掘谷歌,Cabal或其图书馆似乎有一个问题 在这方面。

我能看到的可能解决方案是:

  1. 在使用Cabal时关闭代理(对此不太热衷);或

  2. 获取补丁并开始黑客攻击。我犹豫不决走这条路, 因为我是一个完整的Haskell noob而且我对Darcs还不熟悉;或

  3. 给它一个神奇的“我可以没有代理”参数。因此问题。

2 个答案:

答案 0 :(得分:4)

如果我正确地阅读http://darcs.haskell.org/cabal-install/Distribution/Client/HttpUtils.hs,您应该能够将环境变量HTTP_PROXY设置为无效值(将“工作?”)以使其直接进行。

答案 1 :(得分:4)

按照@SamB的建议,进行一些实验,我现在使用的解决方案是:

export HTTP_PROXY="::"

以下是实验日志的一部分:

尝试@ SamB的解决方案:

[12:10:35z ~]:export HTTP_PROXY=""
[12:11:47z ~]:set|grep HTTP
HTTP_PROXY=
[12:11:50z ~]:cabal update
Downloading the latest package list from hackage.haskell.org
cabal.exe: connect: failed (Connection refused (WSAECONNREFUSED))

尝试“合理的人”解决方案:

[12:11:54z ~]:export HTTP_PROXY="None"
[12:12:02z ~]:set|grep HTTP
HTTP_PROXY=None
[12:12:04z ~]:cabal update
Downloading the latest package list from hackage.haskell.org
cabal.exe: user error [\]
           (openTCPConnection: host lookup failure for "None")

尝试“不合理的人”解决方案:

[12:23:44z ~]:export HTTP_PROXY="::"
[12:24:00z ~]:set|grep HTTP
HTTP_PROXY=::
[12:24:04z ~]:cabal update
Downloading the latest package list from hackage.haskell.org
Warning: invalid http proxy uri: "::"
Warning: proxy uri must be http with a hostname
Warning: ignoring http proxy, trying a direct connection
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install
[12:24:34z ~]:

耶!