Ubuntu 16.04のGNOME ClassicデスクトップにVNC/XRDPでリモート接続する

tigervncserverをインストールして、GNOME ClassicデスクトップにVNC/XRDPでリモート接続します。なお、tightvncserverからGNOME3へアクセスするとabortしてしまいます。Unityへの接続方法はこちらを参照してください。

1 前準備

vnc4serverとtightvncserverを削除します(削除せずにupdate-alternativesコマンドでtigervncserverに切り替えても良いです)。

$ sudo apt remove -y vnc4server tightvncserver

gitとdevscriptsをインストールします。

$ sudo apt install -y git devscripts

GNOME Classicデスクトップ用のパッケージをインストールします。

$ sudo apt install -y gnome-panel metacity

2 tigervncserverのインストール

すでにtigervncのリポジトリにubuntu-xenial向けのdevscriptsファイルが格納されています。

tigervncのリポジトリからソースコードをダウンロードします。一応動作確認したコミットのハッシュ値でcheckoutしています。

$ mkdir tigervnc
$ cd tigervnc
$ git clone https://github.com/TigerVNC/tigervnc
$ cd tigervnc/
$ git checkout 044e2b87da7121ef6cbd59e88b101d7d8e282896 \
-b 044e2b87da7121ef6cbd59e88b101d7d8e282896

devscriptsファイルをシンボリックリンクでソースツリー直下に移動します。

$ ln -s contrib/packages/deb/ubuntu-xenial/debian

ビルドに必要なパッケージをインストールします。

$ sudo apt install -y $(grep Build-Depends: debian/control | \
sed -e 's/Build-Depends://g' -e 's/([^\)]*)//g' -e 's/,//g')

ビルドします。

$ chmod a+x debian/rules
$ fakeroot debian/rules binary

apt -f installで依存パッケージを解消しつつインストールします。

$ cd ..
$ sudo dpkg -i *.deb || (sudo apt -f install -y; sudo dpkg -i *.deb)
$ cd ..

3 GNOMEのインストール

gnomeパッケージをインストールします。gdm3は上手く動作しないようなのでlightdmをディスプレイマネージャとして選択します。デフォルトだと最初からlightdmがインストールされているので、DEBIAN_FRONTENDをnoninteractiveにしてgdm3の設定をスキップすることもできます。

$ sudo DEBIAN_FRONTEND="noninteractive" apt install -y gnome

4 ${HOME}/.xsession

gnome-session-classicを起動させます。

$ echo "gnome-session-classic" > ~/.xsession

5 VNCサーバを動かす

vncpasswdでVNC接続用のパスワードを作成します。

$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n

vncserverを起動します。VNCで接続するポートは5900 + ディスプレイ番号です。以下の例では5901となります。

$ vncserver

New 'ubuntu-16:1 (hiroom2)' desktop is ubuntu-16:1

Starting applications specified in /home/hiroom2/.vnc/xstartup
Log file is /home/hiroom2/.vnc/ubuntu-16:1.log

VNCクライアントでvnc://<server>:5901へアクセスします。先ほど作成したVNC用のパスワードを入力すると以下の画面が得られます。

0001_VNC-to-GNOME-Classic.png

6 XRDPサーバを動かす

XRDPをインストールして起動します。

$ sudo apt install -y xrdp
$ sudo systemctl enable xrdp
$ sudo systemctl restart xrdp

rdesktopやWindowsリモートデスクトップで接続して、ユーザ名とパスワードを入力すると以下の画面が得られます。

0002_XRDP-to-GNOME-Classic.png