どこからでもアクセスできるクラウド上に自分のデスクトップ環境があると便利ですよね。

その OS が Windows であれば、(外部からアクセスできるようにするだけなので)環境構築自体はさほど難しくないと思います。ただ Windows の仮想環境は(Windows サーバーのライセンス代が無条件で付いてくるため)安くありません。業務上の選択肢としてはまだしも、個人の環境としてはちと非現実的です。 一方、CentOS で実現できると、多くのクラウドベンダーで無料期間が用意されていたり、安く使えたりするので個人開発者としては嬉しいわけです。一方で、主にサーバー用途向けに用意されているインスタンス上にデスクトップクライアント環境を用意するのはちょっと面倒ではあります。そもそもサーバー用途ならコマンドラインインターフェースで充分なのですが、デスクトップクライアントとなるとウィンドウシステム必須です。日本語環境が用意されているとも限りません。なので、これらからのインストールが必要になります。


というわけで、クラウド上の CentOS サーバーを、日本語デスクトップ環境に改造するまでの手続きを紹介します。具体的には IDCF クラウドの CentOS 6(64bit) を使い、以下のパッケージを追加インストールします(サーバー用途でも使いそうなパッケージはこのリストからは抜いています。必要であれば別途導入してください):
パッケージ名用途
X Window Systemウィンドウシステム
DesktopGNOME デスクトップ環境
Japanese Support日本語環境
Tiger VNC ServerVNC サーバー
LibreOfficeオフィススイート
Eclipse + JDK統合開発環境
Firefoxウェブブラウザ
Alacarteメニューカスタマイズ用ツール


まず最初に、今回作成するデスクトップ環境へは VNC を使って外部からウィンドウシステムにアクセスします。というわけで VNC 用にポートフォワード設定が必要になります。今回は 5901 番ポートで設定するので、各種クラウドのファイアウォールやポートフォワード設定で 5901 番ポートを通すように設定してください(図は IDCF クラウドでのファイアウォール設定画面ですが、使っている環境で同様の設定をしてください):
2015020603


次に日本語デスクトップ環境を構築するためのモジュールを導入します。SSH で root ログインし、以下の手順を実行します:
(リスト内の上3つのグループモジュールをまとめて導入)
# yum groupinstall "X Window System" "Desktop" "Japanese Support"

ここまでで X Window System と GNOME デスクトップ、そして日本語環境が導入されます。されますが、このままでは SSH でのみリモートアクセスできるだけで、X Window の画面を開く術がありません。せっかく X Window まで導入したので VNC を使ってウィンドウシステムを利用できるようにしましょう。このサーバーインスタンス内には VNC サーバーを導入して、5901 番ポートでアクセスできるようセットアップします:
(VNC サーバーを導入)
# yum install tigervnc-server

導入した VNC サーバーを設定します。今回は root 権限で VNC サーバーにアクセスする例を紹介しますが、一般ユーザーでアクセスする場合も同様にしてそのユーザーを指定して行ってください:
(VNC サーバーの設定変更)
# vi /etc/sysconfig/vncservers

(以下の2行のコメントを外して編集(この例では root で接続))
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp"

(VNC サーバーの接続パスワードを設定) # vncpasswd (パスワードを2回入力して設定)

設定後、改めて VNC サーバーを起動します:
(VNC サーバーの起動)
# /etc/init.d/vncserver start

起動に成功すると ~/.vnc/xstartup というファイルが作成されるので、このファイルを編集して GNOME セッションの画面をそのまま VNC で流せるように変更します:
(VNC サーバーの設定変更)
# vi ~/.vnc/xstartup

(#!/bin/sh の直下に以下の一行を追加)
export LANG="ja_JP.UTF-8"

  :
  :

(最後の2行をコメントして、その下に1行追加)
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
gnome-session &

最後に VNC サーバーの自動起動を ON にして、サーバーインスタンス自体を再起動します:
(VNC サーバーの自動起動)
# chkconfig vncserver on

(再起動)
# shutdown -r now

サーバーが再起動した頃を見計らって、今度は VNC クライアント(ここでは UltraVNC プロジェクトの UltraVNC Viewer)を使ってアクセスしてみます。UltraVNC Viewer をインストール&起動して、接続情報に CentOS マシンの IP アドレス:1 を入力します(最後はコロンと1):
2015020604


パスワードを聞かれたら、上記 vncpasswd コマンド実行時に指定したパスワードを入力します:
2015020605


これで X Window System 上の GNOME デスクトップ画面が表示されるはずです。ここからは GUI が使えるようになりました!:
2015020606


この時点で日本語表示はできますが、まだ日本語入力はできないと思います。そこで日本語入力のための設定を行います。メニューから システム - 設定 - 入力メソッド を選択します:
2015020607


「入力メソッド設定ツール」が起動します。「入力メソッドの機能を有効にする」にチェックが入っていて、かつ入力メソッドに「IBus を使用する」が選択されていることを確認した上で「入力メソッドの個人設定」をクリックします:
2015020608


「IBusの設定」ウィンドウが開きます。「インプットメソッド」タブ内に「日本語 - Anthy」が含まれていることを確認して「閉じる」をクリックします:
2015020609


1つ前の画面に戻り、「閉じる」をクリックして設定ツールを終了します:
2015020610


今設定した内容を反映させるため、再度システムを再起動します。メニューの アプリケーション - システムツール - 端末を選んでターミナル画面を開き、再起動コマンドを入力します:
2015020611

(再起動)
# shutdown -r now

再起動した頃を見計らって、再度 UltraVNC Viewer でアクセス&ログインします。そして同様に端末を出した後にキーボードの CTRL+SPACE を押すと、画面上部のキーボード部分が日本語入力マークに切り替わり、同時にローマ字による日本語入力が可能になります。アルファベット入力に戻すには再度 CTRL+SPACE を押します:
2015020612


ここまでで、ほぼ日本語デスクトップ環境が整いました。後は必要そうな GUI アプリケーションを yum でインストールします:
(GUIアプリ(ここでは FireFox と LibreOffice と JDK)を導入)
# yum install firefox libreoffice java-1.7.0-openjdk-devel

実はこの後、統合開発環境の Eclipse を導入します。Eclipse 自体も yum で(yum install eclipse で)導入できるのですが、yum だと最新版でないことに加え、メニューのカスタマイズ方法と合わせて紹介したいので、Eclipse だけは別途最新版をダウンロードして導入します。Eclipse は不要であっても、ウィンドウのメニューに表示されないコマンドを表示させたい場合は以下の手順を参考にしてください。

改めて、この時点で FireFox, LibreOffice, JDK がインストールされて、メニューからも実行できるようになっているはずです:
2015020613
2015020614
2015020615


では改めて Eclipse をインストールします。最新版を導入したいので先ほど導入した FireFox を起動し、http://www.eclipse.org/downloads/ から最新版の Eclipse をダウンロードします:
2015020616


ダウンロードが完了すると(僕の環境では)eclipse-java-luna-SR1a-linux-gtk-x86_64.tar.gz というファイルができているはずです(異なるファイル名の場合は適宜読み替えてください)。これを適当なディレクトリ(以下の例では /opt/ 以下)に展開します:
(/tmp/ 以下にダウンロードモジュールがある場合のコマンド例)
# cd /opt
# tar xzvf /tmp/eclipse-java-luna-SR1a-linux-gtk-x86_64.tar.gz

これで /opt/eclipse/ というフォルダが作られ、その下に Eclipse 環境一式が作られているはずです。Eclipse 本体は /opt/eclipse/eclipse というファイルパスで実行できるようになっています。

ただ、この時点ではファイルを展開しただけなので、ウィンドウのメニューから Eclipse を実行することができません。yum で Eclipse をインストールすると、「プログラミング」メニュー内に Eclipse が作られる(ただし最新版ではない)ので、できれば同様に「プログラミング」メニュー内に Eclipse を追加したいものです。


というわけで、最後にメニューのカスタマイズ方法を紹介します。メニューのカスタマイズには alacarte というツールを使うと便利なので、まずは alacarte を yum でインストールして実行します:
(メニューカスタマイズツールを導入して)
# yum install alacarte

# alacarte

alacarte が起動すると、現在のメニュー内容が表示されます:
2015020617


今回は /opt/eclipse/eclipse を「プログラミング」メニュー内に追加したいので、左のメニューでは「プログラミング」を選択し、「新しいアイテム」ボタンをクリックします:
2015020618


追加したいアプリケーションの情報を入力します。種類はアプリケーション、名前は Eclipse 、そしてコマンドに実行コマンドの絶対ファイルパスを指定して、最後に「OK」ボタンをクリックします:
2015020619


1つ前の画面に戻り、「プログラミング」メニュー内に "Eclipse" が追加されたことを確認して「閉じる」をクリックします。これでメニューのカスタマイズができたはずです:
2015020620


実際にウィンドウのメニューを確認すると「プログラミング」メニュー内に "Eclipse" が追加されていることを確認できます:
 2015020621


実際に "Eclipse" を選択すると、指定された実行ファイルが呼び出されて Eclipse が起動するはずです:
2015020622


ざっとこんな感じ。一般的にはサーバー用途で使うクラウドの CentOS 環境に日本語デスクトップ環境を構築してメニューのカスタマイズまで行う手順を紹介しました。GUI へは VNC を使ってアクセスするので、Android や iPad などのタブレットにキーボードさえ付けておけば、後は各種 VNC クライアントをインストールしていれば、それらのモバイル環境からこのデスクトップ環境を呼び出して使うことだってできちゃいます。最近は Linux のデスクトップアプリケーションも充実してきており(個人的にはゲームだけがまだまだ、だと思ってます)、手軽にタブレットさえ持ち運んでいればそこそこ使えると思っています。

なお Amazon EC2 の場合、MarketPlace から CentOS を選んで導入すれば同様の手順で同じような環境が構築できると思っています。ただ Amazon AMI から提供される Amazon Linux の場合、X Window を導入できるかどうかは未確認です。 また、ここで紹介した手順は CentOS に限らず RHEL(RedHat Enterprise Linux) でも使えます。私自身は Power Linux の RHEL で同様のデスクトップ環境を構築したこともあるので、ある程度の所まではできると思っています。


私個人はここで紹介したアプリに加えて、GIMP とか Sublime Text とか IBM Notes とかといった GUI 前提のクライアントアプリケーションも導入して使ったりしています。ここで紹介しなかったアプリケーションについても、ここで紹介した方法の応用で導入できるのでは、と思っています。