Windows Subsystem for Linuxと認証プロキシ
about
認証プロキシと戦うエンジニアがWindows10にWindows Subsystem for LinuxでUbuntuを入れた戦いの記録。
Ubuntuを入れて、apt-get update
するまで。
Ubuntuをインストールするまで
インストールできなかったMS推奨の方法と、インストールができたMS非推奨の方法について述べる。
ストアからはインストールができなかった
普通の人*1は下記の記事のようにインストールすればスコッと導入できる。
Windows Subsystem for Linuxをインストールしてみよう!
弊社の環境下ではストア*2からのダウンロードは、プロキシのブラックリストに入っているらしい。
Ubuntuどころか標準インストールアプリは何一つとしてアップデートやインストールが出来なかった。*3
lxrun
を使う
困った、Ubuntuが使えないって思っていたら、こんなMSのリファレンスを見つけた。
Command Reference
lxrun.exe
is deprecated after the Fall Creators Update.
とか書いてあるけど気にせず実行する。 藁にもすがる思いでPowerShellに以下のコマンドを発行。
lxrun /install /y
すると沈黙のストアとは正反対にグイグイUbuntuがダウンロードされていく。 Lets' noteもきっと本望であろう。 このインストールはダウンロードが終わってからめちゃくちゃ時間がかかるので、あせってシェルの再起動等しないように。 インストールが終わるとユーザの作成やロケールの設定があるのでよしなに。
apt-get
できるようする
Ubuntuに認証プロキシを読ませる
Ubuntuが入って満足はしてはいけない。認証プロキシはUbuntuを外に出してくれない。 クソみたいにいつもパスワードの入力を求める認証プロキシの設定をUbuntuになめさせる。
環境変数を利用
以下のような形で環境変数にプロキシの設定を入れる。
export http_proxy=http://<ProxyUser>:<ProxyPassword>@<ProxyFQDN>:<ProxyPort> export https_proxy=http://<ProxyUser>:<ProxyPassword>@<ProxyFQDN>:<ProxyPort>
ここのユーザ名・パスワードはUbuntuのではなく、君の社畜番号とかを入れる。
.zshrc
とかに記述しておけばよい。
/etc/apt/apt.conf
を利用
aptの設定ファイルにプロキシの設定を書き込む方法もある。
Acquire::http::proxy "http://<ProxyUser>:<ProxyPassword>@<ProxyFQDN>:<ProxyPort>"; Acquire::https::proxy "http://<ProxyUser>:<ProxyPassword>@<ProxyFQDN>:<ProxyPort>";
行末の;
を忘れると動かないので注意。
gitにも設定
.gitconfig
ファイルにも認証プロキシの設定を入れておこう。
[http] proxy = http://<ProxyUser>:<ProxyPassword>@<ProxyFQDN>:<ProxyPort> [https] proxy = http://<ProxyUser>:<ProxyPassword>@<ProxyFQDN>:<ProxyPort>
apt-get
してみる
ここにも落とし穴がある。君はすぐにsudo apt-get update
とかして動かないことに絶望する。
そりゃそうだ、sudo
は一般ユーザの環境変数を継承しない。-E
っていうオプションが必要。
sudo apt-get update
リポジトリがどんどん更新されていく。刻の涙を君は流す。
その前にaptのレポジトリのミラーを日本に変えておくともっと嬉しい。
sudo sed -i.bak -e "s%http://us.archive.ubuntu.com/ubuntu/%http://ftp.iij.ad.jp/pub/linux/ubuntu/archive/%g" /etc/apt/sources.list
まとめ
- ストアはつかえない。
lxrun
しよう - 認証プロキシの設定をかまそう
- sudoするときは環境変数が引き継がれないことに注意
TeraTermしてる同僚を横目に、Windows Subsystem for Linuxを導入してコーナーで差をつけろ!