cabal can't use http proxy

橙三吉。 提交于 2019-12-07 06:18:21

问题


My Linux(redhat6) server has to use http proxy to connect to outside world. While it works for other things like wget, it doesn't work for cabal.

cabal update -v3

shows errors like this:

407 - proxy authentication required cabal: Failed to download http://hackage.haskell.org/packages/archive/00-index.tar.gz : ErrorMisc "Unsucessful HTTP code: 407"

I tried to change http_proxy environment variable to format like http:// user: passwd at proxy:port, but it doesn't work either.

The same problem has been asked here

But I'm not allowed use a proxy server like polipo, is there any other way to make cabal work behind a proxy?


回答1:


You can use cntlm to talk to proxy. It will handle authentication issues. After configuring and installing cntlm, set up the new environmental variable by modifying http_proxy, https_proxy etc.

Your cabal command should work after that.




回答2:


some detailed procedure here:

  1. Download cntlm from here It's a c program with no other dependencies so very easy to make, just follow the instructions in the downloaded package.

  2. After installing cntlm, follow this answer from Colonel Panic. Obviously on linux you need to change cntlm.exe to ./cntlm, I named the configure file cntlm.conf

  3. The default listen port for cntlm is 3124, if you can't use that port, change it to something else like 53124, then add this to your cntlm.conf or cntlm.ini file:

    Listen              127.0.0.1:53124
    
  4. Start cntlm in the background:

    
    ./cntlm -c cntlm.conf
    
  5. Change your http_proxy environment variable to talk to the cntlm process rather than the real proxy.

    
    export http_proxy=http:// 127.0.0.1:53124
    

That's it, cabal will work as good as ever.




回答3:


You can also setup the http_proxy directly in the system setting:

http_proxy=http://username:password@hostname:port


来源:https://stackoverflow.com/questions/23137795/cabal-cant-use-http-proxy

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!