UbuntuとVNCは仲が悪いから、Ubuntu MATEに切り替える


はじめに

Ubuntu 14.04 LTSのVirtualBox用仮想ハードディスクイメージをUbuntu Japanese Teamのサイトからダウンロードして1年ぐらい使っている。最近、同バージョンのUbuntuをVMware vSphere 5.1の仮想マシンとして構築し、Windows上のVNCクライアントを経由してデスクトップを使用したいと考えたため、先行でVirtualBoxのUbuntuで色々とVNCを試した。その結果、以下のことからUbuntuとVNCは基本的に相性が悪いと結論付けた。

  • パッケージ化されているのはvnc4serverとtightvncserverの2つだが、いずれを使ってもUnityデスクトップをVNCでアクセスすることは困難。
  • GNOME3デスクトップを使うにはGNOME自体のインストールとGNOMEのパーツを個別に実行する必要があり、多くのディスク消費の割に煩雑な手順で不完全な状態しか構築できなかった。
  • GNOME2デスクトップのMATEであれば割りと素直にVNCでアクセス可能だが、PPA(パーソナル パッケージ アーカイブ)を使う必要があり今後に憂いを残す。

参考: http://server-setting.info/ubuntu/vnc-remote-desktop.html

そこで、いっそのこと、1年ほど前にディストリビューションとしてリリースされたUbuntu MATE 16.04 LTSに切り替えてみようと考えた。

Ubuntu MATE公式サイト: https://ubuntu-mate.org/

Ubuntu MATEインストール&設定

以下の通りの手順でUbuntu MATE 16.04 LTSのインストールと設定を行った。

  • https://ubuntu-mate.org/download/ から64ビット版インストールCDのISOファイルをダウンロード。
  • VirtualBox仮想マシンにISOファイルをマウントしてインストール。
  • インストール時に作成した管理ユーザーでログインしてMATE端末を開き、SSH接続ができるように「sudo apt-get install ssh」でSSHサーバーをインストール。
  • 一旦OSを再起動。
    ※再起動後はコンソールでログイン禁止!
  • PuttyやTera Termなどのターミナルソフト(今回はPutty)でSSH接続。
  • 「sudo apt-get install vnc4server」でVNCサーバーをインストール。
  • 「sudo apt-get install vim」でVIMテキストエディターをインストール。
  • 「vncserver :1」で一旦VNCサーバーを起動し、「vncserver -kill :1」でVNCサーバーを直ぐ停止。
  • 「vim ~/.vnc/xstartup」でVNCの初期設定ファイルを開き、以下の内容に変更。
#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

unset DBUS_SESSION_BUS_ADDRESS
export XMODIFIERS="@im=fcitx"
fcitx

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
#- vncconfig -iconic &
#- x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#- x-window-manager &
mate-session &
  • 「vncserver :1」でVNCサーバーを起動。
    サイズを指定したい場合は「vncserver :1 -geometry <幅>x<高さ>」で起動(デフォルト:1024x768)。
  • RealVNCやUltraVNCなどのVNCクライアント(今回はRealVNC)で「<Ubuntu MATEのIPアドレス>:5901」にアクセス。
  • しばらくすると、Ubuntu MATEのデスクトップが表示されるのを確認。

右上のトレイアイコンの背景が白色なので違和感が残ったが、日本語もちゃんと入力可能で問題なく使えそうである。
なお、インプットメソッドシステムはOS標準のfcitx(インプットメソッドはmozc)を使用している。

コンソールログイン禁止について

「再起動後はコンソールでログイン禁止!」と前述したが、VNC接続する前にコンソールからログインすると、その後でログアウトしたとしても、VNC接続で正しくデスクトップが表示されない事象が発生する。
原因は不明確だが、先にコンソールでログインすると、VNC接続時に初期化されなくなる処理が存在するものと想定される。
逆にVNC接続後にコンソールでログインしても、正常にデスクトップが表示される。