Windows10で追加されたWSL(Windows subsystem for Linux)にubuntu 18.04を入れる

Windows 10の2017年のアップデートで新規に追加された機能にWSL(Windows subsystem for Linux)というものがあります。

これはWindows 10の中にLinuxを仮想化としてではなく、ほぼ同時に走らせることができるます。以前は仮想化などの手もありましたが、お互いのOSにデータを転送するのに苦労したり、パソコンの性能が低いと動作が重かったりということがありましたが、Windows10とLinuxが別々ではなく、Windowsの一部として使えるようになっています。

Windowsのコマンドプロンプトだと低機能で使う気になれなかった人や、Linuxをプログラミングの授業で使うから自分でも触れてみたいけど仮想化とかよくわからん!入れたけど重くて動かない!でもデュアルブートってデータぶっ壊しそうで怖くね?とかいう人もこれなら手っ取り早く試せるのではないかと思います。ただ、X11(コマンドで操作するだけじゃなくてマウスとかアイコンとかのGUIを使えるようにするためのもの)などを入れることもできなくはありませんが、動作が不安定だったり導入も大変なので、当面はCUIだけのほうがいいと思います。仮想化と使い分けるのがいいかもです。これ書いてる人は情報系分野の人ですが、ひょっとすると今年から入学した新入生はWSLについて聞いたことがあるかもしれません。あと、Macにも似たような機能ないの?って思うかもしれませんが、Mac自体がUNIX系なので(Linuxとは別、詳しい話はここではしませんが)、すでにbashは使えます。

1.Windows10の機能有効化

Windows10のスタートメニューから「設定」を選んで開きます。その後、「アプリ」を開いてください。

右上に関連設定があると思いますが、ここから「プログラムと機能」を開きます。「Windowsの機能または有効化」を開いてください。

Windows subsystem for Linuxのチェックを入れ、OKを押して指示に従ってください。

その後、Windows10のストア(今はMicrosoft Storeに名前が変わってます)を開いて、Ubuntuで検索します。今回は18.04を導入しました。わかる人はわかると思いますが、名前が示す通り、ubuntu・debianのコマンドが使えます(apt-get,debなど) 。ディストリビューションとかの話を書くと長くなるし、Linuxそのものの解説ならもっといろいろなサイトがあるので細かくは触れません。この画面ではすでにインストールされています。

2.インストールを行う


検索してヒットしたら、インストールして起動後、指示に従ってください。200MBくらいあるのでダウンロードにはそれなりの時間がかかります。途中でUNIXユーザー名とパスワードを聞かれると思うので適当に決めてください。
その後、コマンド入力画面になったら、次のように打ってみてください。

$ cat /etc/lsb-release


ユーザー名などは伏せていますが、バージョンなどが表示されます。

3.パッケージ更新&日本語環境適用

インストールしたばっかりなので、ついでに次の操作をやっておきます。アップデートをします。sudoとかなに?なぜ毎回パスワードを?って思うかもしれませんが、安全に作業するために管理者だけに作業させるためです。ここら辺はWindowsと違い、UNIXの場合、管理者とそうでないユーザーとの区分けが厳しめです。
詳しいことは授業とかでも言うと思うし、他のサイトとかにも載ってると思うのでここでは触れません。

$ sudo apt update 
$ sudo apt upgrade

その後は日本語環境を導入します。ま、日本語のソフトは少ないので、どっかで英語に頼ることにはなると思いますが。

$ sudo apt install language-pack-ja-base language-pack-ja
$ sudo update-locale LANG=ja_JP.UTF-8

これで各種付属パッケージなどが最新となり、日本語環境が無事導入されました。後は各種お好みでGCCやLLVM/Clangなどコンパイラ、vim・emacsなどのエディタをaptもしくはapt-getで入れてやるといいと思います。これだけで学校のレポート課題レベルのプログラミングの開発環境は十分に揃います。
Linuxコマンドとか各種操作方法については他にもいろんなサイトで触れられているし、WSLの細かい部分についてはQiitaなどのコミュニティにもあると思うので割愛します。部室の環境は複数人を考慮してマルチユーザーに設定してますが、個人で使う場合は初期設定のままで大丈夫だと思います。