企業ファイアウォールの背後で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"
また、~/.bashrc
ファイルにも同じ行を追加しました。
WSLはシェルの起動時にPAMスタックを使用しないため(ログインかどうかは関係ありません)、PAMベースの処理は失敗します。
/etc/environment
および~/.pam_environment
、pam_env
によって読み取られ、適用しない( WSL#1405 )pam_umask
からのデフォルトのumaskは設定されていません( WSL#352 )pam_limits
からの制限( WSL#1576 )特に環境設定では、.profile
(ログインシェルを実行している場合)または.bashrc
にexport
を指定して追加するのが最も簡単かもしれません。
一般的に、単純な解決策はないようです。
ユーザーとして再度ログインできます。
Sudo -iu "$USER"
su - "$USER"
これらは、それぞれ/etc/pam.d/Sudo
または/etc/pam.d/su
にPAM構成をロードする必要があります。しかし、これらは互いにわずかに異なり、/etc/pam.d/sshd
または/etc/pam.d/lightdm
とも異なるため、すべてがGUIまたはSSHを介して実際のUbuntuシステムにログインした場合と同じではありません。
(Sudo
とsu
は両方ともパスワードを要求しますが、両方ともパスワードを要求しないように構成できます。)