irh*_*irh 3 bash proxy environment-variables windows-subsystem-for-linux
我无法让 pip 在公司防火墙后面工作。我将 http 和 https 代理添加到我的/etc/environment文件中,如果我执行echo "$HTTP_PROXY"它会打印正确的内容。但是,如果我执行env或printenv没有代理变量出现。我认为这pip也是失败的原因。任何见解将不胜感激。我的/etc/environment文件看起来像
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"
Run Code Online (Sandbox Code Playgroud)
我~/.bashrc也在我的文件中添加了相同的行。
WSL 在启动 shell(无论是否登录)时不使用 PAM 堆栈,因此基于 PAM 的事情会失败:
/etc/environment并且~/.pam_environment,由 阅读pam_env,不适用(WSL #1405)pam_umask未设置默认 umask from ( WSL #352 )pam_limits(WSL #1576)特别是对于环境设置,将它们添加到.profile(如果运行登录 shell)或.bashrc,可能是最简单的export。
通常,似乎没有简单的解决方案。
您可以再次以您的用户身份登录:
sudo -iu "$USER"
su - "$USER"
Run Code Online (Sandbox Code Playgroud)
这些应该加载PAM配置中/etc/pam.d/sudo或/etc/pam.d/su分别。但是这些彼此略有不同,也与/etc/pam.d/sshd或不同/etc/pam.d/lightdm,因此并非所有内容都与您通过 GUI 或 SSH 登录到实际的 Ubuntu 系统相同。
(两者sudo并su会要求密码,但两者都可以被配置为不索要密码。)