web-dev-qa-db-fra.com

`http_proxy` ne s'affiche pas avec` printenv` sur WSL

Je ne parviens pas à faire fonctionner pip derrière un pare-feu d'entreprise. J'ai ajouté les proxies http et https à mon fichier /etc/environment et, si j'exécute echo "$HTTP_PROXY", le résultat est correct. Cependant, si j'exécute env ou printenv, aucune des variables proxy n'apparaît. Je pense que c’est pour cette raison que pip échoue aussi. Toute idée serait appréciée. Mon fichier /etc/environment ressemble à

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
http_proxy="http://<stuff>.<stuff>.org:80"
HTTP_PROXY="http://<stuff>.<stuff>.org:80"
https_proxy="https://<stuff>.<stuff>.org:443"
HTTPS_PROXY="https://<stuff>.<stuff>.org:443"

Et j'ai ajouté les mêmes lignes à mon fichier ~/.bashrc.

3
irh

WSL n'utilise pas la pile PAM lors du démarrage d'un shell (connexion ou non), donc les choses basées sur PAM échouent:

  • /etc/environment et ~/.pam_environment, lu par pam_env, ne s'applique pas ( WSL # 1405 )
  • umask par défaut de pam_umask n'est pas défini ( WSL # 352 )
  • limites de pam_limits ( WSL # 1576 )

Spécifiquement pour les paramètres d’environnement, il peut être plus simple d’ajouter ceux-ci à .profile (si des shells de login sont exécutés) ou à .bashrc, avec export.


Généralement, il ne semble pas y avoir de solution simple.

Vous pouvez vous reconnecter en tant qu'utilisateur:

Sudo -iu "$USER"
su - "$USER"

Ceux-ci devraient charger la configuration PAM dans /etc/pam.d/Sudo ou /etc/pam.d/su respectivement. Mais ils sont légèrement différents les uns des autres, et également de /etc/pam.d/sshd ou /etc/pam.d/lightdm, de sorte que tout ne serait pas pareil que si vous vous connectiez à un système Ubuntu réel via l'interface graphique ou SSH.

(Sudo et su demanderaient tous deux un mot de passe, mais ils peuvent tous deux être configurés pour ne pas demander de mot de passe.)

4
muru