はじめに
現在、広く使われているOSは、大きく分けて、三つしかありません:マイクロソフトの提供するWindows系列、アップルの提供するiOS系列、オープンソースで開発されているLinux系列です。細かく見ていけば、RT-OSであるToronやガラケーで使われていたSymbianなどもありますが、ユーザーが直接意識するのは、この三つしかないといっても過言ではありません。
さらに言えば、iOSの中身はUNIX系列になっていたり、そもそもUNIXクローンがLinuxだったりと、色々と複雑な状況です。ただ、一つ言えるのは、LinuxというOSは、様々なデバイスにインストールされており、Androidという形に変わって携帯電話に入ったり、家電の中に組み込まれたりしている非常に優秀なOSで、色々と影響を与えている、という事です。
この影響はマイクロソフトにまで及んでいます。古くはLinux vs Windowsという争いがあったほどにマイクロソフトはLinuxの影響力を大きく見ていましたが、現状ではLinuxの方が優勢、という状況でしょう。オープンでフリーであり、多くのディストリビュータがあるLinuxには、巨大企業のマイクロソフトであっても優勢を保ち続けるのは難しかった、と考えられます。
それらも背景として、「LinuxをWindows上で走らせる機能」であるWSL(Windows Subsystem for Linux)が2017年にマイクロソフトからリリースされました。これにより、「簡単」かつ「便利」にLinuxのターミナルが使えるようになりました。互換性を高めたWSL2も既にリリースされており、Linuxコミュニティのリソースが活用できる状況が整ってきています。
そこでこの記事では、WSLを活用してWindows10上にLinuxを構築し、一定の環境を構築する所までを題材としてみました。基本的な環境を構築するには十分な内容を説明していると思うので、今後の環境構築の参考にして下さい。
WSLのバージョンを決める
WSLは1と2が並行してサポートされます。ですから、どちらを採用しても、少なくとも当面は問題ないと考えられます。
とは言え、このどちらを利用するか、というのは決めなければなりません。結論から言えば、特に理由がなければ、WSL2を採用すれば良いでしょう。その理由は、「WSL2の方がLinuxとの互換性が高い」という一点に尽きます。互換性がWSL2の方が基本的に高いため、ごく一部のアプリケーションを除き、WSL1を採用する理由がありません。性能的な話をすれば、ファイルアクセスについてはWSL1の方が高速になるケースが存在します。しかし、WindowsアプリとLinuxアプリから交互にアクセスするケースであり、通常は気にしなくても良いでしょう。性能より、互換性を取った方が、基本的には幸せな結果が得られるものと考えます。
互換性についての詳細は、マイクロソフトのサイトに掲載されている「WSL1とWSL2の比較」を参照してください。詳しく記載がされています。
WSLのインストール作業
WSLを利用できるようにするためには、WSLの有効化と、ディストリビューションのインストールの2ステップが必要です。以下に手順を書いていきます。
以下をPowerShellで実行して、WSL機能を有効化しましょう。その後、再起動が必要です。WSLが仮想マシンで立ち上がるため、ハードウェアの設定変更が必要なためです。また、この実行は管理者権限でなければいけません。なので、スタートメニューからPowerShellを選択して実行するときに、右クリックで管理者権限を付与して実行するのが一番楽かと思います。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
更にWSLのバージョン2を規定のバージョンとするのであれば、
wsl --set-default-version 2
とします。
この後、欲しいリナックスのパッケージをインストールすれば良いのですが、方法は二つあります。
- マイクロソフトストアを利用して、希望するOSをインストールする
- ディストリビューションパッケージをマイクロソフトのページよりダウンロードして手動インストールする
以下にそれぞれの方法について説明します。
1.マイクロソフトストア経由
1であれば、マイクロソフトアカウントでログインし、ストアで欲しいイメージをインストールするだけで完了できます。基本的にはどんな人にでもおすすめ出来る方法です。
具体的には、スタートメニューよりMicrosoft Storeを起動し、検索ウィンドウにlinuxと入力します。すると、「Ubuntu」や「SUSE」、「Debian」といったディストリビュータが表示されるので、希望の物をインストールすれば良いです。
ディストリビュータについては、どれを選ぶか判断に迷う人もいるでしょう。どれもLinuxには違いないので、ネット上の情報も多いUbuntuを選ぶと良いと考えます。この記事ではubuntuを仮定して進めます。
もちろん、用途にあったものを選ぶのが良いので、用途の応じて選びましょう。Ubuntuであれば、「個人的な利用」が用途になるでしょう。逆にサーバー系の学習をしたいのであれば、それに見合ったディストリビューションを選ぶのが好ましいです。
インストールしたディストリビューションはスタートメニューに登録されるので、クリックで選択すれば起動することが出来ます。初回起動時には設定が立ち上がることもあるので、その点のみ注意してください。
2.手動インストール
2の手動インストールを実施する場合は少々面倒です。まず、マイクロソフトからパッケージをインストールしないといけません。「ディストリビューションのダウンロードページ」にアクセスし、希望のパッケージをダウンロードしましょう。
ディストリビューションについては、1でも説明した通り、好きなものを選択して構いません。この記事ではubuntuを仮定しますが、好みのもので基本的には大丈夫です。
ダウンロードしたファイルは拡張子がappxとなっているはずです。この中にはマシンイメージが格納されているので、配置したい場所にファイルをおきましょう。このファイルは実はzipファイルなので、拡張子をzipに変更し、ファイルを展開しましょう。中には「ディストリビューション名.exe」が格納されています。これをダブルクリックして、実行することで、起動できます。
初回起動時には設定が立ち上がることもあるので、その点のみ注意してください。
マイクロソフトのサイトでは、以下のコマンドでパッケージを登録する方法も紹介されていました。
Add-AppxPackage ./<distro>.appx
しかし、試した所、パッケージが正常に起動しなかったため、今回の紹介からは省いています。
ディストリビューションの削除について
ディストリビューションの削除方法は知っておいて損は無りません。再インストールが必要になるのは良くある話です。しかし、手動インストールした場合であっても、展開されたファイルを削除するだけでは完全な削除にならない様なので、以下の手順が必要です。
インストール済みディストリビューションを
wsl -l -v
で確認します。このNameが削除の時に指定する必要があるパラメータです。
削除は上記のNameを使い、wslコマンドでunregisterを叩きます。つまり、
wsl --unregister Name
として削除をします。
[ignore]コマンドプロンプトやスタートメニューからPowerShellを立ち上げ、以下を入力すると、WSLがインストールできます。自分は、Windowsキー+Rで「ファイル名を指定して実行」ウィンドウを出し後、"powershell"とタイプして、エンターを押して立ち上げてます。[/ignore]
参考文献
Install WSL, Microsoft Docs
ウイルス対策ソフトの設定を修正する
これまでの作業で、WSL自体の設定は終わりですが、WSLをまともに使えるようにするために、少しWindows側の設定を修正します。
ウイルス対策ソフトをインストールしている場合、WSL側の通信がウイルス対策ソフトのファイアーウォールで遮断され、まともに通信できなくなることがあります。ですから、ウイルス対策ソフトでhttpプロトコル(ポート80番)について、許可をするのが良いでしょう。
WSLに対して、全ポート通信許可を出すことも検討しても良いですが、基本的にWindows側でネットワークを使うと決めてしまえば、HTTPが許可されていれば概ね問題ないはずです。
[ignore]ウイルス対策ソフトの緩和を実施
の通り、httpを解除。[/ignore]
環境設定(シェル/設計環境/GUI環境)
おすすめの環境設定系の話題を紹介します。
準備
Linuxの管理者であるスーパーユーザになるための
su -
を一度実行して、管理者権になれることを確認します。パッケージの更新・追加には管理者権限が必要だからです。
今後の作業はスーパーユーザで実行するか、sudoコマンドを経由して管理者権限で実行することを仮定します。セキュリティ上はスーパーユーザにはなるべくならない方が良いので、sudoコマンドを前提として進めていきます。
セキュリティ対策:パッケージの最新化
以下でパッケージ群を最新化します。
sudo apt-get update
シェルの変更
Linuxといえば、シェルを自由に選択できる所に強みがあると言えます。好みは色々とあると思いますので、以下のコマンドで、シェルを確認して、好みの物があれば、それを設定すれば良いです。
cat /etc/shells
残念ながら、ubuntuにはcsh系が入っていなかったので、zshを入れることにしました。
sudo apt-get install zsh
好みのシェルが分かっている場合、既定を変更すると、楽です。
chsh -s /etc/zsh
もちろん、一時的に使うだけなら、以下でも良いです。
zsh (一覧にあるシェルの名称) (作業) exit
設計環境の構築
ディストリビューションに入っている物は色々と最小限度です。このままでは、gccも立ち上がらないので、gccなどの開発環境をインストールしましょう。
sudo apt-get install build-essential
これで必須系のライブラリとコンパイラはインストールされるはずです。自分の環境(ubuntu 20.04)では、gcc version9.3.0がインストールされました。
GUI環境のインストール
今回の記事を書くにあたって、GUI環境としてXRDPとxfce4をインストールしてみました。XRDPはLinux用リモートディスクトップ環境であり、xfce4はウィンドウマネージャと呼ばれるGUIプログラムです。余談ですが、Windowsは95以降はウィンドウマネージャはOSのコア機能に統合されていましたが、Windows3.1まではLinuxと同様別プログラム扱いでした。
インストールには以下をたたきます。
sudo apt-get install xfce4 sudo apt-get install xrdp
xfce4のインストール途中で設定を聞かれますが、gdm3を選んでみました。
xrdpはリモートデスクトップのクライアントソフトですが、特定ポートを利用して通信します。しかし、デフォルトポートはwslと相性が悪い(設定が衝突している)らしく、変更しなければなりません。viエディタなどを使い、「/etc/xrdp/xrdp.ini」のport番号を以下の様に修正します。
「/etc/xrdp/startwm.sh」の末尾を以下の通り修正します。
port=3390
3390ポートに変更する大きな理由はありませんが、マイクロソフトがポート変更についての記事で、3389を使っているのでそれにならっています。
リモートデスクトップ時にxfce4が起動するようにするためには、「/etc/xrdp/startwm.sh」の末尾を以下の通り修正します(元々ある命令をコメントアウトする)。
#test -x /etc/X11/Xsession && exec /etc/X11/Xsession #exec /bin/sh /etc/X11/Xsession startxfce4
これにより、リモートデスクトップ時にxfce4が起動する様になります。
おわりに
WSLを利用したLinuxの環境構築について説明しました。
この手の環境構築は非常に重要な割に、それほど回数を実施しないため、失念する可能性が高いのもあり、こういった記事でまとめをしておきました。GUIの設定までメモしたので、今後はこの手順で進めるとともに、必要に応じて、追記していきたいと思います。
今回の記事が皆様のお役に立てれば幸いです。