2014年6月17日

Fedora 20: VNC で MATE を走らせる

我が家のサーバ群は4年ほど前に構築した32ビットのFedora 13(FC13)ベース。さすがにいろいろなところが古くなってきたので、最新のFedroraに更新を計画しているが、実際の更新に先立って、まず現在のところ最新のFC20でテスト用サーバを1台作っている。

この戦略は正しかった。FC13とFC20ではあまりにもいろいろなところが違いすぎる。これから違いを一つ一つ確認していくが、取りあえず多くの違いの元凶一つとしてとして見つかったのは、SystemVのスタートアップスクリプトからsystemdへの変更。

今回はVNCサーバをやっつける。

小生はFC15から標準デスクトップになったGNOME3は生理的に合わない。小生のデスクトップの使用はXTerminalでCUIの作業が主体だから、ああ言うWindows8に迎合したようなデスクトップは使えない。実を言うと、GNOME2に固執しているのがFC13から4年間も更新を躊躇していた原因。しかし最近のリリースではGNOME2の後継のMATEが選べるようになったので漸く腰をあげた。

で、ローカルのデスクトップは指示どおりにインストールして何事もなく動作し、GNOME2風のデスクトップで安心したのだが、VNCで躓いた。

systemd以前のVNCサーバは /etc/sysconfig/vncserver に起動したいVNCセッションを書き込んでサービスを起動すればよかったが、systemd になって手順が変わった。以下が大まかなフロー。
  1. /usr/lib/systemd/system/vnserver@.service/etc/systemd/system/vncserver@:n.service にコピー(nは1~の任意の数字。5900+n がサーバのポート番号になる)
  2. /etc/systemd/system/vncserver@:n.service を編集。ほとんどの場合、<USER>を任意のユーザ名に変更するだけ。画面解像度の指定は、/usr/bin/vncserver のコマンドラインに以下のように)。

    ##ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
    ExecStart=/sbin/runuser -l vncuser -c "/usr/bin/vncserver -geometry 1280x720 %i"
  3. vncpasswd を実行して ~/.vnc ディレクトリとパスワードファイルを作成。
  4. ~/.vnc/xstart を編集して望みのデスクトップ(ウィンドウマネージャ)を指定。
上記の1~3はいろいろなところで解説されているが、4.のデスクトップの指定は試行錯誤の結果。

MATEを指定するには、簡単に言えば、~/.vnc/xstart の内容を全部無視して、以下の一行を実行させるようにすればよい。
exec mate-session &
 具体的には、~/.vnc/xstart の内容を全部削除あるいはコメントアウトして上記の行をいれるか、または上記の行をファイルの先頭に挿入するだけ。

簡単なことほどどこにも書かれていないので見つけるのに苦労する。

2 件のコメント:

  1. ご投稿ありがとうございます。
    CentOS7のvncでgnome-classicしか出来ないので、悩んでました。
    書かれてある通り、コメントアウトしたらMATEが使えるようになりました。
    Xfceも試してみます。

    返信削除
    返信
    1. 田中さん、今日は。お役に立てて光栄です。
      現在、古いマザーボード(Intel DH55HC)でFedora21 64bitを動かそうとしているのですが、カーネルが死んでしまう問題を抱えています。
      https://bugzilla.redhat.com/show_bug.cgi?id=1183843
      何か情報をお持ちでしたら共有させてください。

      削除