4

使用 Cabal 检索包时,我经常收到以下错误消息:

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

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

通过对 Google 的挖掘,Cabal 或其图书馆似乎在这方面存在(有)问题。

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

  1. 使用 Cabal 时关闭代理(不是很喜欢这个);或者

  2. 获取补丁并开始破解。我很犹豫要不要走这条路,因为我是一个完整的 Haskell 菜鸟,而且我对 Darcs 还不满意;或者

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

4

2 回答 2

4

如果我正确阅读http://darcs.haskell.org/cabal-install/Distribution/Client/HttpUtils.hs,您应该能够将环境变量 HTTP_PROXY 设置为无效值(“”是否有效?)让它直接去。

于 2010-03-29T23:26:14.950 回答
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 ~]:

耶!

于 2010-04-03T11:36:34.943 回答