Comment définir le proxy pour Cabal?

9

J'utilise Ubuntu derrière un proxy (Windows). Je voudrais utiliser l' cabalutilitaire.

jem@Respect:~$ cabal update
Config file path source is default config file.
Config file /home/jem/.cabal/config not found.
Writing default configuration to /home/jem/.cabal/config
Downloading the latest package list from hackage.haskell.org
Warning: invalid http proxy uri:
"http://domain\\user:pass@internetproxy:3128/"
Warning: proxy uri must be http with a hostname
Warning: ignoring http proxy, trying a direct connection
^C

L'URL du proxy a été lue dans l'environnement. Mon proxy nécessite une authentification, mais cabal veut que l'URL du proxy commence par un nom d'hôte, alors peut-être qu'il me demandera des informations d'identification ...

jem@Respect:~$ http_proxy=http://internetproxy:3128/ cabal update
Downloading the latest package list from hackage.haskell.org
No action for prompting/generating user+password credentials  provided (use: setAuthorityGen); returning Nothing
cabal: Failed to download index 'ErrorMisc "Unsucessful HTTP code: (4,0,7)"'

Qu'est-ce que c'est setAuthorityGenet comment l'utiliser? Plus important encore, puis-je activer l'accès via le proxy d'authentification? Aurai-je besoin de creuser un tunnel?

Synesso
la source
J'ai un problème similaire. Si vous trouvez une solution de contournement, faites-le moi savoir.
Dilawar
@Dilawar Il y a une case à cocher dans bugtracker hackage.haskell.org/trac/hackage/ticket/855
Artem Koshelev

Réponses:

2

Mon approche standard des proxys ISA est de configurer un proxy d'authentification local comme cntlm . Après avoir installé cntlm sur votre machine Ubuntu, vous le configurez pour vous authentifier via NTLM sur le proxy ISA avec votre nom d'utilisateur et votre mot de passe Windows. Ensuite, vous définissez la HTTP_PROXYvariable sur http://localhost:3128(c'est- à -dire le port que cntlm écoute).

L'avantage de cette approche est qu'un seul programme doit gérer le proxy Windows. Tous les autres programmes peuvent passer en utilisant cntlm comme passerelle.

rekado
la source
2

Réponse de Haskell-cafe pipermail

cabal-installest configuré dans ~/.cabal/config. Ajoutez cette ligne au fichier de configuration:

export http_proxy=http://${username}:${password}@${proxy_address}
andrybak
la source
0

Je l'ai fait travailler avec polipo . Mon université utilise http-proxyavec authentification. Dans /etc/polipo/configvous devez ajouter ces lignes

parentProxy = "proxy.server.com:80"
parentAuthCredentials = "myusername:mypassword"

Et l'exportation http_proxy=http://localhost:8123". Et ça a fonctionné comme un charme.

Dilawar
la source