連載
» 2018年12月06日 05時00分 公開

Tech TIPS:WSL上にXサーバをインストールしてGUIを実現する(VcXsrv編)

WSL(Linux)環境でGUIのアプリを利用するには、GUIの描画を行うXサーバを用意する必要がある。Windows 10で利用できるXサーバはいくつかあるが、今回はVcXsrvというXサーバの導入方法を解説する。

[打越浩幸,デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows 10 Fall Creators Update(バージョン1709)以降(64bit版のみ)


 Windows 10に「WSL(Windows Subsystem for Linux)」をインストールすると、Linux向けのプログラム(バイナリファイル)をそのまま実行できるようになる。現在では、UbuntuやDebian、SUSE Linux、WLinux(これはDebianベースの有償製品)など、数種類のLinuxディストリビューションを導入できるようになっている。WSLの導入方法については、以下の記事を参照していただきたい。

 LinuxをクライアントOSとして利用する場合、一般的には「Xサーバ(X Window System)」を使ったGUIのデスクトップ環境を構築して利用することが多い。しかしWSLをインストールしただけでは、Xサーバはインストールされないため、CUIのコンソールしか使えない。

WSLでXサーバ対応アプリを利用しているところ WSLでXサーバ対応アプリを利用しているところ
WSLでも、Xサーバを導入すると、Linux向けのGUIプログラムを利用できる。

 そこでWindows 10上にXサーバをセットアップすれば、WSL上のLinuxアプリでもGUIで利用できるようになる。本稿ではその手順を一つずつ解説する。

Windows 10上で動作するXサーバの種類

 Xサーバは、Windows OSで言えば、GUIのウィンドウや部品などを描画、管理したり、キーボードやマウスなどのデバイスを管理したりする部分だけを独立させたようなものと考えればよいだろう。Xのサーバとクライアント間はXプロトコルで通信しており、同一システム上になくても動作するし、Xサーバを実現するソフトウェアも、機種やアーキテクチャなどは問わない。

 Windows 10で利用できるXサーバソフトウェアは幾つかある。

ソフトウェア 概要
VcXsrv フリーのXサーバ
Cygwin/X フリーのXサーバ。UNIX互換環境のCygwinの一つとして提供されている
Xming 以前は無償だったXサーバ。現在では利用形態に応じていくらか支払う必要がある
MobaXterm sshクライアント/ターミナル機能などが統合されているXサーバ製品。機能限定の無償版もある
X410 Microsoft Storeで販売されている有償のXサーバ。ストアアプリなので、導入やバージョンアップなどが容易
Windows OS向けの主なXサーバソフトウェア

 どれを使っても構わないが(Xサーバは描画を担当するだけなので、できることはどれもほぼ同じだが、管理機能などがいくらか異なる)、今回は無償(GPLライセンス)で利用できる「VcXsrv」の導入方法を紹介する。

VcXsrvの入手

 VcXsrvは、以下のサイトにアクセスして[Download]ボタンをクリックすると入手できる。原稿執筆時点での最新版は、Ver.1.20.1.4であった。

VcXsrvのダウンロード VcXsrvのダウンロード
VcXsrvのページにある[Download]のリンクをクリックしてインストーラをダウンロードする。

VcXsrvのインストール

 ダウンロードしたインストーラをダブルクリックして起動し、インストールオプションやインストール先などを指定してインストールする。

VcXsrvのインストール(1) VcXsrvのインストール(1)
ここではインストールするコンポーネントを設定する。そのままでよいだろう。

VcXsrvのインストール(2) VcXsrvのインストール(2)
インストール先を指定する。

VcXsrvの起動

 インストールが完了したら、[スタート]メニューの[VcXsrv]−[XLaunch]を起動する。起動するとウィザード画面が表示され、幾つかの選択肢が表示されるが、通常は全部そのままでよいだろう。

VcXsrvの起動(1) VcXsrvの起動(1)
XLaunchを実行すると、表示方法などを設定するためのウィザード画面が表示される。この画面では、Xのクライアントアプリのウィンドウをどう表示するかを選択する。

VcXsrvの起動(2) VcXsrvの起動(2)
起動時に何らかのプログラム(シェルなど)を実行するかどうかを選択する。

VcXsrvの起動(3) VcXsrvの起動(3)
拡張設定画面。そのまま[次へ]進めばよい。

VcXsrvの起動(4) VcXsrvの起動(4)
[Save configuration]で設定をファイルに保存しておくと、設定ファイルをクリックするだけで(このウィザードを表示せずに)すぐにVcXsrvが起動する。

 以上が完了するとXサーバが起動する。Xサーバの実行中はシステムトレイにVcXsrvのアイコンが表示されており、これをクリックすると設定の確認などができる。

システムトレイのVcXsrvアイコン システムトレイのVcXsrvアイコン
トレイ上のVcXsrvアイコンを右クリックすると、終了やログの確認などが行える。

VcXsrvが自動的に起動されるようにする

 起動したVcXsrvは、ユーザーがサインアウトすると終了する。次回またWSLとXサーバを利用したければ、手動でVcXsrvを起動する必要がある。これが面倒なら、Windows OSのスタートアップフォルダにXLaunch(の設定ファイルへのショートカット)を登録しておくとよいだろう。

 [Windows]+[R]キーを押して「ファイル名を指定して実行」ダイアログを表示させ、「shell:startup」と入力すると、ユーザーの「スタートアップ」フォルダがエクスプローラで開かれる(TIPS「スタートメニューやスタートアップなどの特殊フォルダの場所を素早く開く」参照)。ここに、起動ウィザードの最後のステップで作成した設定ファイル(〜.xlaunchファイル)へのショートカットを作成しておくと、次回サインイン時にはウィザードが表示されずに自動的に起動する。

WSLからXサーバを利用するためにDISPLAY環境変数を設定する

 Xサーバを導入したら、次はクライアント側(WSL側)の準備を行う。といっても、「DISPLAY=」という環境変数で、Xサーバの場所(接続先のホストやディスプレイ番号など)を指定するだけである。WSL上でのアプリ実行時にこの変数がセットされていると、アプリは自動的にそのXサーバに接続してGUIの描画を行う。

 DISPLAY環境変数に設定する値の書式は次の通りである。実際にこれをシェル(bashなど)から実行する場合は、先頭に「export」を付けて、シェル外から参照できるようにしておくこと。

DISPLAY=<ホスト名/IPアドレス>:<ディスプレイ番号>.<スクリーン番号>
設定例:
DISPLAY=xserver:0.0  ……xserver上のXサーバへ接続
DISPLAY=localhost:0.0  ……ここから4つはすべて同じ意味。ローカル上のXサーバへ接続
DISPLAY=127.0.0.1:0.0
DISPLAY=:0.0
DISPLAY=:0  ……最も省略した形式



 接続先としてはホスト名やFQDN名、IPアドレスなどを指定できる。ただし相手側(Xサーバ側)では、リモートからのアクセスを許可するように設定しておく必要がある。

 今回紹介しているように、ローカルのWindows 10上で動作しているXサーバへ接続するだけなら、ローカルループバックアドレスの「localhost」「127.0.0.1」を指定するか、それを省略して「DISPLAY=:0.0」や「DISPLAY=:0」を設定しておけばよい。

 ディスプレイ番号やスクリーン番号は、複数の画面がある場合に表示先を指定するものだ。「:0.0」としておくとデフォルトの画面が表示対象となる。

 WSLを起動する度にDISPLAY変数を手動で設定するのは面倒なので、通常は「~/.profile」(bashの初回起動時に実行される)か「~/.bashrc」(bash起動時に毎回実行される)の中に次のように記述しておく(「~」はユーザーのホームディレクトリ)。

export DISPLAY=:0.0



DISPLAY環境変数の設定 DISPLAY環境変数の設定
デフォルトのXサーバの場所(接続先)は、DISPLAYという環境変数で設定する。ここではbashの~/.profile(最初に1回だけ読み込まれるスクリプト)で設定している。このあたりは利用しているディストリビューションやシェル環境などに応じて変更すること。

Xサーバ対応アプリを実行する

 DISPLAY変数の準備ができたら、次は実際にXサーバ対応のアプリを起動してみる。といってもWSLをインストールしただけではそのようなアプリは何もインストールされていないので、手動で追加インストールする。

 その手順はディストリビューションごとに異なる。例えばUbuntuの場合なら、「sudo apt install x11-apps」とすると、基本的なXサーバ対応のアプリやツールなどがインストールされる。

x11-appsのインストール x11-appsのインストール
Xサーバ向けの基本アプリやツールは「x11-apps」というパッケージで提供されている(「11」はXのバージョン番号)。まずはこれをインストールする。

 x11-appsをインストールできたら、xeyesを起動してみよう。目玉の画像が表示されたらインストールは成功である。

X対応アプリの実行 X対応アプリの実行
Xサーバが起動していて、DISPLAY環境変数も正しく設定されていれば、このように表示されるはずである。

 DISPLAY変数の設定などが正しくない場合は次のようにエラーが表示されるので、設定などを確認すること。

$ xeyes
Error: Can't open display:   ……Xサーバに接続できないというエラー
$ echo $DISPLAY  ……DISPLAY変数の確認
  ……設定されていない
$



 なお、DISPLAY環境変数を設定していなくても、「xeyes -display :0.0」のように-displayオプションを付ければXサーバで表示できる(このオプションはX対応アプリならどれでも利用可能)。これで動作チェックなどを行ってもよい。


 今回はXサーバのインストール方法を紹介した。これを使うウィンドウマネージャやデスクトップ環境、ターミナルエミュレータ、フォント、その他のツールなどについては、今後別TIPSで紹介する。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。