Amazon Linux 2 にデスクトップ環境(MATE)を入れてみた

by 望月雄太

Developers.IO / 2018-11-01 15:35

はじめに

こんにちは、望月です。

最近 Amazon Linux 2 でなにかをやっていることが多いですが、今回もAmazon Linux 2にデスクトップ環境を用意する機会がありましたので、ご紹介したいと思います。

前提

セキュリティグループでEC2宛て 5901 ポートへのアクセスを許可しましょう。 その際はもちろんアクセス元IPアドレスの制限を行うようにしてください。

MATE(デスクトップ環境)のインストール

Amazon Linux 2 の Extras Library で提供されているデスクトップ環境 MATE をインストールします。

$ sudo amazon-linux-extras install mate-desktop1.x  

VNCサーバの構築

TigerVNCのインストール

VNCサーバには、yum でパッケージ提供されている TigerVNC を利用します。

$ sudo yum install tigervnc-server  

TigerVNCのサービス化

TigerVNCのユニットファイルを配置し、ディスプレイ番号は 1 にします。

$ sudo cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service  

VNC接続用のパスワードを設定します。

$ vncpasswd    Password: <パスワードを入力>  Verify: <パスワードを入力>  Would you like to enter a view-only password (y/n)? n  A view-only password is not used  

また、TigerVNCの起動ユーザ設定と、デフォルトでTigerVNCは暗号化通信に対応していますが、暗号化通信のみ接続を許可する形に設定を変更します。

  • 起動ユーザの設定を ec2-user に設定
    • <USER>ec2-user に変更
  • TigerVNCの起動コマンドに -SecurityTypes=TLSVnc 追加
    • 暗号化通信のみ、接続を許可する
$ sudo vi /etc/systemd/system/vncserver@:1.service    [Unit]  Description=Remote desktop service (VNC)  After=syslog.target network.target    [Service]  Type=forking    # Clean any existing files in /tmp/.X11-unix environment  ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'  ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"  PIDFile=/home/<USER>/.vnc/%H%i.pid  ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'    [Install]  WantedBy=multi-user.target    ↓↓↓    [Unit]  Description=Remote desktop service (VNC)  After=syslog.target network.target    [Service]  Type=forking    # Clean any existing files in /tmp/.X11-unix environment  ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'  ExecStart=/usr/sbin/runuser -l ec2-user -c "/usr/bin/vncserver %i -SecurityTypes=TLSVnc"  PIDFile=/home/ec2-user/.vnc/%H%i.pid  ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'    [Install]  WantedBy=multi-user.target  

起動時にVNCサーバが立ち上がるようにサービスの登録を行います。

$ sudo systemctl enable vncserver@:1.service  

ec2-user の環境設定

xstartupファイルを作成し MATE が起動するように設定をします。

$ vi ~/.vnc/xstartup    #! /bin/sh  exec mate-session &  

xstartupファイル後、実行権限を追加します。

$ chmod +x ~/.vnc/xstartup  

TigerVNCの起動

TigerVNCの起動をします。 ステータスを確認し、問題なく立ち上がっていることを確認しましょう。

$ sudo systemctl start vncserver@:1.service  $ sudo systemctl status vncserver@:1.service  

VNC接続確認

TigerVNCのクライアントソフトをインストールし、接続してみます。

  • TigerVNCのクライアントソフトを起動します。
    • VNC server: <publicIP:5901>
  • VNCパスワードを入力し、ログインします。

日本語化

せっかくデスクトップ環境を入れたので、ぜひ日本語化したいですね。やっていきましょう。

日本語化のときはいつも yum groupinstall "Japanese Support" を実行してたのですが、Amazon Linux 2 にはなく、CentOS 7 にもなくなったらしく、軽くショックを受けました。

日本語入力を可能とするIME ibus と、日本語フォント google-noto-sans-japanese-fonts をインストールします。 Google Noto Fonts がパッケージ提供されているの初めて知りました。便利。

$ sudo yum install ibus-kkc  $ sudo yum install google-noto-sans-japanese-fonts  

ibus の設定を bashrc に記載します。

$ vi ~/.bashrc    ===末尾に以下を追加===  export GTK_IM_MODULE=ibus  export XMODIFIERS=@im=ibus  export QT_IM_MODULE=ibus  ibus-daemon -drx  

ロケール設定を ja_JP.UTF-8 にします。

$ sudo localectl set-locale LANG=ja_JP.UTF-8  

VNCサーバを再起動します。

$ sudo systemctl restart vncserver@:1.service  $ sudo systemctl status vncserver@:1.service  

VNC接続確認 in 日本語

VNCで接続し、日本語化されていることを確認します。

最後に

デスクトップ環境を入れてみたもののデスクトップ環境に対応したアプリなどをなにもインストールしていないため、できることは限られています。

Amazon Linux 2 でデスクトップ環境を利用したいならWorkSpacesを利用するという選択肢もあり、WorkSpacesであれば最初からデスクトップ環境に対応したアプリもインストール済みとなるため、要件に応じ、WorkSpacesをご検討いただければと思います。

Shared via Inoreader