Top page

X Server 設定(例)

X Windowとは

  X Windowは、Unix の標準GUIプラットフォームとして開発され、Linuxでも使われています。
現在の最新バージョンは X11 となっています。
古い規格ですが、現在まで基幹の構造を変えることなく、高い互換性を保っています。

 サーバ - クライアント構成をとっており、アプリケーションを実行するサーバコンピュータにGUIを提供する Xクライアントを置き、
端末コンピュータ (クライアントコンピュータ/ローカル端末) に描画を担当する Xサーバを置きます。

 XクライアントはXサーバに描画命令メッセージを送信し、Xサーバが端末画面に描画します。

 この構成のため、ネットワークを介している/介していないにかかわらず、また、Xサーバをネストしたような
複雑な構成でもGUIアプリケーションを実行できます。

 

どのような場合にX Serverが必要か

Windows, macOS:

macOS:

Linux/Unix:

 

Xアプリ (X11 app, X app) を実行するために

  Xアプリを実行するためには、ユーザが使っている端末側に X Server ソフトウェアをインストールし、
Xクライアントがどの端末のどのディスプレイ (物理的なディスプレイではなく、X Serverが管理している論理的ディスプレイ)に
描画するのか、知らせる必要があります。

X Serverソフトウェアのインストール:

・ Linux/Unix/WSLの場合
  GNOME, KDEなどのGUIデスクトップを使っている場合、新たなインストールは不要です。
  そうでない場合、X.orgなどからインストールしてください
・ Windowsの場合
  MobaXtermを使うことを推奨します https://mobaxterm.mobatek.net/
・ macOSの場合
  XQurtzのインストールが必要です https://www.xquartz.org/

 

X Serverに描画端末情報を伝える方法:

  1. DISPLAY環境変数を使う方法
    % export DISPLAY=[描画クライアント端末のIPアドレス/ホスト名]:[ディスプレイ番号]
    例: export DISPLAY=192.168.1.10:0
     
  2. SSH の X11 port forwardingを使う方法
    1の方法では、描画端末のIPアドレスを知っている必要がありますし、端末が変わるたびにDISPLAY変数を変えないといけません。
    SSHにはport forwardingと呼ばれる機能があり、-X オプションをつけてサーバコンピュータ (Xクライアント) にログインすることで、
    端末コンピュータの情報をサーバコンピュータに転送して設定してくれます。
    % ssh -X [サーバコンピュータのIPアドレス/ホスト名]
     
    これでうまくいかない場合、-Y オプションも指定してみてください。
    % ssh -XY [サーバコンピュータのIPアドレス/ホスト名]
     
    参考: SSH の X, Y オプションと 「~/.ssh/config」 の   ForwardX11, ForwardX11Trusted の関係について - Qiita
  3. Windowsで 2. を使う場合、MobaXterm を使うことを推奨します。
    MobaXterm で 'session' を作ることにより、X11 port forwardingが使われます。
    ツールバー左端の "session" をクリックし、"SSH" アイコンをクリックしてください。
    "Remote host" と "user name"の設定をすれば、ssh -X でアクセスできます。
    SSH keyを設定する必要がある場合は、"Advanced SSH settings" の "use private key"で、
    .ssh/ 以下にあるprivuvate keyファイルを指定してください。

 

Xアプリの動作確認

  Linux/UnixpでX11環境がインストールされている場合、適当なXアプリを実行して、端末に表示されているかを確認します。

以下のアプリがインストールされている可能性が高いので、試してみてください、

  1. xclock 時計
  2. xeyes マウスカーソルを目が追うおもちゃアプリ
  3. xterm X端末
  4. xemcas エディタ

いずれも見つからない場合、X-Apps等をインストールする必要があります