WindowsへのXウィンドウシステム(X11)の導入
WSLはCUIで利用しても良いのですが、そのままではWSL内のGUIアプリケーションが使えません。プログラミング演習ではEclipseを用いた演習をしているLinuxではX11と呼ばれるウィンドウシステムが使われていますが、X11はOSとは独立したシステムであり、描画を担うXサーバというソフトウェアと、実際のアプリケーションであるXクライアントは別々のパソコンやOSで動作していても構いません(その間はUDP上のXプロトコルと呼ばれるプロトコルで接続されていれば通信が行われます)。WSLでGUIアプリケーションを用いる一番楽な方法は、Windows 10側にXサーバソフトウェアを入れて描画の部分を担わせ、WSL内のXクライアントをWindows 10の画面上で使うことです。
Windows 10にXサーバ機能を担わせるプログラムとしては以下のようなものがあります。
VcXsrv (無料)
無料のXサーバとして良く知られ、広く使われています。こちらに導入方法が書かれています:WSL上にXサーバをインストールしてGUIを実現する(VcXsrv編)
MobaXterm(無料/有料)
Xサーバ機能だけでなくsshクライアント機能なども持つ多機能なソフトウェアです。Home Editionは機能制限がありますが個人利用の範囲であれば無料で利用できます(ライセンスはこちら)。
X410 (有料)
VcXsrvは、残念ながら稀にバグが出て止まってしまうことがありますが、X410は安定していて高速です。手間をかけたくない人はこちらを導入してもよいでしょう。定価は4700円ですが、時々1000円程度で売られることがあります。X410 を購入 - Microsoft Store ja-JP
これらのXサーバを導入したら、WSLでGUIアプリを利用する前に起動しておきます。VcXsrvの場合は、スタートメニューからVcXsrv→XLaunchを探して起動します。
https://gyazo.com/710a86ef94dbfe64bb1a7e601ade0b54
起動時に設定を聞かれますが全てデフォルトで構いません。
https://gyazo.com/32d53a18b63e98737fb4eacec097fc23https://gyazo.com/609c98bf1a1663f01bf3bd280f684b45https://gyazo.com/91dab79b7d40f37426fe4f36d2edaa11https://gyazo.com/62e78b2c1f35d8f4ca82d4445a90bf6c
その際にファイアウォールの設定について警告が出ることがありますが、これは「プライベートネットワーク」のみ許可するようにした方が無難です。
https://gyazo.com/d76f2738a5dd29979ca4969a2cb6db2a
実行されるとタスクトレイにアイコンが出ます。
https://gyazo.com/fc35de0c2f43eba93aa541349b54b87e
この状態でXサーバが利用可能になります。
WSLのGUIプログラム(Xクライアント)にXサーバの場所を教えるには、WS側の環境変数DISPLAYにXサーバの場所を設定してやる必要があります。bashがログイン時に実行するスクリプトである~/.profileに、export DISPLAY=:0.0 と書き加えます。nano ~/.profileを実行して、下記のように書き換え、Ctrl+Oで書き込みCtrl+Xで終了します。
https://gyazo.com/4012a7ede5ec1c22d995d9f64e949e62
一度WSLを終了するため、ウィンドウの右上×を押して閉じ、もう一度スタートメニューからDebian(またはUbuntu)を起動し、echo $DISPLAYを実行して下記のように表示されたら環境変数が正しく設定されています。
https://gyazo.com/8709d03cd114bce314a475449dd9c6bf
Xサーバが動作することを確かめるため、簡単なXクライアントを導入します。sudo apt install x11-appsを実行します。
https://gyazo.com/a57a9774dd6cf7120e06e1f2c544dd42
xeyesを実行してみて、画面のどこかに目玉のようなものが出れば成功です。大抵は最初は左上に出ます。
https://gyazo.com/375132338e69a8948aea30084eab8da0
#C開発環境