Cygwin/X (X サーバソフトウェア)のインストールとテスト実行(Windows 上)
Cygwin/Xのインストールと設定に関する説明を行う.Cygwin/XはWindowsで動作するXサーバソフトウェアで,Windows環境でXアプリケーションを利用することが可能になる.リモートLinuxマシンの利用などで役立つ場合がある.インストール手順としては,Cygwinのセットアッププログラムを使用してX11関連パッケージを選択し,環境変数の設定を行う.Xサーバの起動は「startx」コマンドで行い,設定ファイルを編集することで起動オプションをカスタマイズできる.また,リモートログインの例として,SSHのポートフォワーディングを使用する方法を紹介している.また,Cygwin上でgnuplotを実行してグラフを描画する方法も紹介している.
前準備
Cygwin のインストール(Windows 上)
Cygwinは,Linux と類似の機能を提供するツールとライブラリ
主な機能:ツール,POSIX API(cygwin1.dll)
- Windows で,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
- 次のコマンドを実行
次のコマンドは,Cygwinをインストールし,パスを通すものである.
winget install --scope machine Cygwin.Cygwin powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\cygwin64\sbin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")" powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\cygwin64\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")" powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\cygwin64\use\sbin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")" powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\cygwin64\use\local\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
- 再度,Windows で,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
- setup-x86_64.exe のダウンロード,wget のインストール
cd c:\cygwin64 curl -O https://www.cygwin.com/setup-x86_64.exe .\setup-x86_64.exe -q -P wget .\setup-x86_64.exe -q -P gcc-core .\setup-x86_64.exe -q -P gcc-fortran .\setup-x86_64.exe -q -P gcc-g++ .\setup-x86_64.exe -q -P gdb
【関連する外部ページ】
- Cygwin の公式ページ: https://www.cygwin.com/
Cygwin インストールディレクトリの確認
- Cygwin インストールディレクトリを確認しておくこと. このページでは,Cygwin インストールディレクトリを,「C:\cygwin64 」であるとして説明を続ける.
Cygwin/X の X サーバソフトウェアのインストール手順
Cygwin のセットアッププログラム setup-x86_64.exe (ダウンロードは別ページで説明) を使ってインストールする.
- セットアッププログラムの開始
- パッケージ選択画面 (Select Packages)」まで進む
- パッケージ選択画面で,パッケージを選ぶ
下記のパッケージをチェックする.
- X11/X-start-menu-icons
フォントも選ぶ. 「たくさんあって,何を入れたらよいか分からない」という場合には, とりあえず,次を選んでおく.
- X11/font-adobe-dpi100 など
* 後で,Cygwin のセットアッププログラムを再実行して,簡単に追加できるので,あまり悩まないこと.
- 終了の確認
- cygwin1.dll のコピー
これは,Windows の側から,Cygwin のプログラムを実行できるようにするための設定
C:\cygwin64\bin\cygwin1.dll を C:\Windows\System32 にコピーしておくこと
- 環境変数の設定
これも,Windows の側から,Cygwin のプログラムを実行できるようにするための設定
- Windows の環境変数 PATH に「C:\cygwin64\bin;C:\cygwin64\usr\bin;C:\cygwin64\usr\local\bin」を追加する.
* すでに環境変数 PATH が定義済みのときは,半角のセミコロン「;」で区切って既存の 定義と区切る.
- Windows の環境変数 LD_LIBRARY_PATHに「C:\cygwin64\lib;C:\cygwin64\lib\w32api;C:\cygwin64\usr\local\lib」を追加する.
* すでに環境変数 LD_LIBRARY_PATH が定義済みのときは,半角のセミコロン「;」で区切って既存の 定義と区切る.
- Windows の環境変数 PATH に「C:\cygwin64\bin;C:\cygwin64\usr\bin;C:\cygwin64\usr\local\bin」を追加する.
X サーバの起動と設定
Cygwin/X の X サーバの起動は,次のような手順になる.
- Windows のデスクトップにある「Cygwin」のアイコンをダブルクリック
- Cygwin のコンソールが開くので「startx」を実行
- X サーバとウインドウマネージャが起動する.
デフォルトでは画面一杯使う設定になっている. それを変えたい場合には,下記の記述を参考に, 「XWin -rootless」の設定を行う.
Cygwin/X の X サーバの設定について,簡単に紹介しておく.
- C:\cygwin64\bin\startxwin.bat のショートカットを,デスクトップに作る.
このショートカットをダブルクリックすると X サーバが起動する.Cygwin のコンソールを開く手間が減る.
* startxwin.bat が無いよ,というときは,インストールをやり直す(X11/X-start-menu-iconsを選んでいるか,再度確認する).
- (オプション)C:\cygwin64\bin\startxwin.bat をエディタで開く
「%RUN% XWin -multiwindow ...」の部分を探す
ここに,X サーバの起動時の引数が書かれているので, 好みに応じて,「XWin -rootless」のように書き換える.
リモートログインの例
X サーバを起動した状態で, UNIX マシンにリモートログインする例を示している. このとき,リモートで動くプログラムのウインドウが,自分の手元のパソコンで開きます.SSHのポートフォワーディングの機能を使う (何故かというと,自分の手元のパソコンがプライベートIPアドレスしか持っていない場合でも動くように).
- 事前準備
前もって,Cygwinのセットアッププログラムを使って,net/openssh をインストールしておくこと.
- 「xhost +」の実行
「xhost +」で任意のリモートマシンからの X サーバへの接続を許可する.
- 「ssh -X」でリモートログイン
ssh -X <ユーザ名>@<マシン名>を実行の後,パスワードを入力してリモートログインする.
- Cygwin の gnuplot を用いたグラフ描画の例
gnuplot とは,グラフ描画等の機能を持ったソフトウェア. 以下の手順を試すときは,前もって,Cygwinのセットアッププログラムを使って,Math/gnuplot をインストールしておくこと.