LoginSignup
2
1

More than 5 years have passed since last update.

elementary OS にVNCをインストール

Posted at

はじめに

いろいろな事情でRやPythonの計算用マシンをWindowsからLinuxに移行することにしました。
で、見た目すてきなelementary OS、と思ったのですが、リモートコントロールする方法を見つけるのにだいぶ手間取ったので、自分用も兼ねて手順をメモします。

使った物

テスト環境

MacBook Pro Retina 13'' Late 2013のVMware Fusion 8.5.7上の仮想マシン。

手順

elementary OSのインストール

本家からISOをダウンロードしてelementary OSをインストールします。寄付しないとダウンロード出来なそうなデザインのページですが、カスタムに$0を入力すれば寄付なしでもダウンロード出来ます。もちろん、寄付をしてもOKです。
インストール自体はあまり迷うこともないと思うので説明しませんがこことかこことかが参考になると思います。あとはお約束のGoogle先生に・・・。

TigerVNCのインストール

VNCの実装としては、なにやらよさげなTigerVNCをインストールします。
まず公式サイトからUbuntu 16.04LTS用のコンパイル済みバイナリ(執筆時点ではtigervncserver_1.8.80+20170605git70d216e1-1ubuntu1_amd64.deb)をダウンロードします。
ダウンロードしたファイルがある場所をターミナルで開き

sudo dpkg -i tigervncserver_1.8.80+20170605git70d216e1-1ubuntu1_amd64.deb

を打ち込みます。
すると、依存関係にあるパッケージがインストールできないうんぬん、とか言われるので、

sudo apt install -f

コマンドで依存パッケージをインストールし、再度

sudo dpkg -i tigervncserver_1.8.80+20170605git70d216e1-1ubuntu1_amd64.deb

を叩いてTigerVNCをインストールします。

VirtualGLのインストール

TigerVNCだけだと接続に成功しても黒い画面しか表示されないようなので、VirtualGLもインストールします。
こちらもダウンロードページからコンパイル済みバイナリ(執筆時点ではvirtualgl_2.5.2_amd64.deb)をダウンロードします。
TigerVNCと同様にターミナルでファイルのある場所を開き、

sudo dpkg -i virtualgl_2.5.2_amd64.deb

でインストールします。

VNCサーバーの起動

VNCの設定ファイルを生成させるため、ターミナルにvncserverコマンドを打ち込み、VNCサーバーを一度起動させます。
初回起動時にはVNCアクセス用のパスワードを聞かれるので入力します。
サーバーが起動したら、vncserver -kill :1コマンドでいったんサーバーを終了します。

設定ファイルの変更

生成された設定ファイルは~/.vnc/xstartupにあります。
失敗したときのためにcp xstartup startup.bakでとりあえずバックアップを作成し、お好みのエディタでxstartupを開きます。
(何もなければ標準搭載のeditorコマンドでもファイルが編集できます。)
デフォルトで設定ファイルは以下のようになっているので、これを書き換えていきます。

#!/bin/sh

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
OS=`uname -s`
if [ $OS = 'Linux' ]; then
  case "$WINDOWMANAGER" in
    *gnome*)
      if [ -e /etc/SuSE-release ]; then
        PATH=$PATH:/opt/gnome/bin
        export PATH
      fi
      ;;
  esac
fi
if [ -x /etc/X11/xinit/xinitrc ]; then
  exec /etc/X11/xinit/xinitrc
fi
if [ -f /etc/X11/xinit/xinitrc ]; then
  exec sh /etc/X11/xinit/xinitrc
fi
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

変更するのは2点です。まず17行目と20行目のexecvglrunに置き換えます。
さらに最後のtwm &をPantheon起動用にvglrun /usr/bin/gnome-session --session=pantheonに書き換えます。
変更後のファイルは下のような感じになります。

#!/bin/sh

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
OS=`uname -s`
if [ $OS = 'Linux' ]; then
  case "$WINDOWMANAGER" in
    *gnome*)
      if [ -e /etc/SuSE-release ]; then
        PATH=$PATH:/opt/gnome/bin
        export PATH
      fi
      ;;
  esac
fi
if [ -x /etc/X11/xinit/xinitrc ]; then
  vglrun /etc/X11/xinit/xinitrc
fi
if [ -f /etc/X11/xinit/xinitrc ]; then
  vglrun sh /etc/X11/xinit/xinitrc
fi
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
vglrun /usr/bin/gnome-session --session=pantheon

接続テスト

接続テスト用にターミナルにvncserverコマンドを入力し、サーバーをもう一度起動します。
画面の解像度を変えるには-geometryオプションを使い、vncserver -geometry 1280x800のようにピクセル数を指定します。(Retina解像度(2560x1600)ではだいぶ動きが遅かったので半分の解像度を使いました。)
接続にはMac標準のVNCクライアント(画面共有)を使いました。
Finderのメニュー→移動→サーバへ接続でvnc://マシンのアドレス:5901を入力して接続します。
うまく行けば接続先のGUI環境が表示されるはずです。

試していないこと

標準レポジトリにあるvnc4serverでもVirtualGLを使えば接続可能なのかもしれませんが、試していません。
あとはXRDPが使いたいなぁ。。。

おわりに

Linux初心者なのでなにか間違っているかもしれません。
間違いに気付いた方はお知らせ下さい。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1