どうもみむらです。
最近、Windows 10 の RS1 から “Windows Subsystem for Linux” という機能が乗りました。
早い話が Linux アプリケーションを Windows 10 上で動かせるようになりました、
というような機能でして、 “Bash on Ubuntu on Windows” とも呼ばれたりします。
ただ、私は “Bash” 派ではなく “Zsh” 派だったりして、
また “Ubuntu” 派でもなく “Arch Linux” 派だったりしますので、
ちょいとこの機能を使って、表題のようなことをしてみようかと。
余談ですが・・:
どういう風に Bash on Ubuntu on Windows が実現されているかと言うことですが、
ざっくり書くと Linux 環境で Windows アプリケーションを動かす “WineHQ” の逆操作のような
そんな感じです。
Wine が Windows API 呼出 → Linux システムコール として、動かせるようにしているように、
WSL ではその逆で Linux のシステムコール → Windows API 呼出 に変換して動かすような。
詳しいことはこの記事では触れませんが、
気になる方は Microsoft 社のブログ “Windows Subsystem for Linux Overview” をご参照ください
https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-linux-overview/
日本語ですと ASCII さんの “Windows Subsystem for Linux の中身を詳しく見る” がわかりやすいかと思います。
http://ascii.jp/elem/000/001/246/1246548/
また Windows は可能であれば Insider Build (Fast) の方が対応しているシステムコールが多く
色々と楽しめるかと思います。
このあたりが気になる方は、リリースノートが公開されていますのでご確認ください。
https://msdn.microsoft.com/ja-jp/commandline/wsl/release_notes
Zsh on Arch Linux on Windows のつくりかた:
1. Windows 10 RS1 もしくは Insider Preview の環境を用意する。
(Windows のインストールの仕方は割愛します・・。)
Insider 版のビルドをダウンロードするには:
設定画面を開き「更新とセキュリティ」をクリック。
左ペインから「Windows Insider Program」を選択し、右ペインの「ファースト」を選択。
(初めての場合は「Insider Preview ビルドの開始」というボタンがあると思いますので、そちらをクリックします)
あとは Windows Update を実行することで、
運が良ければ直ぐ、悪ければ1日後に降ってくるようになります。
(Insider Preview ビルドを受け取れるようにするためにちょっと時間が掛かるそうです。)
2.開発者モードを有効にする
左ペインから「開発者向け」を選択し、右ペインの「開発者モード」を選択します。
3. Windows Subsystem for Linux (Beta) を有効化する
3.1. Windows キー + R で「ファイル名を指定して実行」を表示し、
“appwiz.cpl” と入力して OK を押します。
3.2. 開いた画面の左側にある「Windows の機能の有効化または無効化」をクリック。
3.3. 「Windows Subsystem for Linux (Beta)」にチェックを入れて “OK” をクリック。
4. WSL 環境に “Arch Linux” を導入する。
こちらのサイトで公開されているスクリプトを実行して、インストールを行います。
https://github.com/alwsl/alwsl
4.1. 適当なフォルダに “alwsl.bat” をダウンロード。
4.2. コマンドプロンプトを立ち上げる。
何もないところで “SHIFT キー” を押しながら右クリックすると、
「コマンドプロンプトをここに開く」もしくは 「Power Shell ウインドウをここに開く」
というメニューが現れますので、こちらを利用すると楽かと思います。
4.3. インストール
( “alwsl.bat install” と入力することで、セットアップが実行されます)
4.4. “bash” と打って実行。
そのまま “root” の Arch Linux 環境に入ります。
5. 一般ユーザの設定
さすがに Root で使い続けるのはあまり気分が良くないので、
一般ユーザを作成して、最初はそのユーザになるようにします。
5.1. Root のパスワードを設定する。
→ そのまま passwd と入力して再設定を行ってください。
5.2. ユーザを作る
※bash コマンドで Linux 環境に入っていない方は ”bash” と入力して Linux 環境に入ってください。
5.2.1. useradd コマンドでユーザを作成します。
ex) useradd mimura1133
5.2.2. passwd コマンドでパスワードを設定します。
ex) passwd mimura1133 → パスワードを求められるので入力、設定.
5.2.3 ホームディレクトリを Windows と同一にする。
→ “/mnt” 以下に Windows のドライブ名が並んでいますので
シンボリックリンクを張って、同一にしてしまいます。
ex) ln –s /mnt/c/Users/mimura1133 /home/mimura1133
…纏めるとこんな感じのコマンドを入力していきます:
root@Satoshi:/mnt/e/temp# passwd
New password:
Retype new password:
passwd: password updated successfully
root@Satoshi:/mnt/e/temp# useradd mimura1133
root@Satoshi:/mnt/e/temp# passwd mimura1133
New password:
Retype new password:
passwd: password updated successfully
root@Satoshi:/mnt/e/temp# ln -s /mnt/c/Users/mimura1133 /home/mimura1133
root@Satoshi:/mnt/e/temp# ls -al /home/mimura1133
lrwxrwxrwx 1 root root 24 Mar 9 18:46 /home/mimura1133 -> /mnt/c/Users/mimura1133/
5.3. 起動時のユーザを設定
5.3.1. 一度 “exit” と入力して Linux 環境を抜けます。
5.3.2. lxrun /setdefaultuser <5.2 で作ったユーザ名> と入力。
5.4. 変わったことを確認。
そのまま “bash” と入力して、Linux 環境に入り、
ちゃんと一般ユーザでログインされていることを確認します。
6. Zsh の導入。
6.1. Zsh をインストール。
→ root に昇格後 “pacman –S zsh”
※もし失敗する場合は一度 “pacman –Syu” と入力して全体をアップデートしてみてください。
6.2. bash コマンドで Linux 環境に入っても “zsh” が立ち上がるように細工する。
私の場合は .bashrc に次のように書き込んでおきました:
/bin/zsh
exit 0;
とりあえずこれで、bash コマンドで起動しても zsh が起動し、
zsh の終了と共に Windows 環境に戻ってくるような感じになります。
最後に。
インストールするとこのような感じでスタートメニュー内に “archlinux” が追加されます。
またここから起動された端末は文字コードが “UTF-8” となっていますので、
何かと便利かな・・と・・!
また、Windows のコマンドプロンプト・端末周りも Windows 10 になってかなり良くなりまして
AA の nyancat もちゃんと表示される良い子になりました。
元から Windows, Arch Linux が大好きな人も、そうじゃない人も
もしよろしければお試し下さいー。