LoginSignup
14
15

More than 1 year has passed since last update.

Amazon Linux2(CentOS)をGUI化する

Last updated at Posted at 2020-09-15

Amazon Linux2(CentOS)をGUI化する

今回はAmazon Linux2(CentOS 7)で、Mateをインストールし、GUI化してみます。ただGUI化するだけでは味気ないので、Google Chromeをインストールしてネットサーフィンできるようにしたいと思います。
またコマンド操作ではなくWindowsっぽくGoogle chromeでインターネットへアクセスしてWebサイトを閲覧できるようにしていきたいと思います。

今回のゴール

以下の画像みたいに利用できるようにする。
yahooトップ画面.png

前提環境

  • 利用するEC2 AMIはAmazon Linux2 (CentOS)
  • EC2はクライアント端末(自宅のWindows 10)からSSHおよびVNCでアクセスできるようにセキュリティグループを設定
  • VNCソフトはtigerVNCを利用
  • デスクトップ環境はMATE(読み:マテ)をインストールして利用
  • VNCクライアントにUltraVNC viewerをインストールする
  • VNCログインに利用するユーザはec2-user

手順

  1. EC2 をデプロイし、SSHで接続できる環境を構築する
  2. EC2 にGUI化ソフト(MATE),tigerVNC(VNCソフト),Google chromeのパッケージをインストールする
  3. クライアント端末にUltra VNC viewer をインストールする
  4. クライアント端末からEC2にVNC接続を行う

実際にやってみた

1.については詳しい記事がたくさんありますので、割愛します。それでは2.から始めていきます。
まずSSHでEC2に接続して、ユーザはec2-userで進めていきます。

# MATEパッケージをインストールします。
sudo amazon-linux-extras install mate-desktop1.x

# MATE をデフォルトのデスクトップとして定義します。またすべてのユーザーに対して MATE を定義します。
sudo bash -c 'echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop'

# TigerVNC をインストールします。
sudo yum install tigervnc-server

# ec2-userに対して6~8 文字の VNC 固有のパスワードを設定します。
vncpasswd
表示専用のパスワードを入力するかどうかを確認するメッセージが表示されたら、「n」を押します。

# 表示番号 1 で VNC サーバーを起動します。
vncserver :1 

# デフォルトで作成されているvncserverのsystemd ユニットをコピーして、別に新しい systemd ユニットを作成します。
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service

# 新しいユニット内のすべての <USER>という記載を 実際に利用するユーザ(ec2-user) に置き換えます。
sudo sed -i 's/<USER>/ec2-user/' /etc/systemd/system/vncserver@.service

# systemd マネージャー設定を再ロードします。
sudo systemctl daemon-reload

# サービスを有効にします。
sudo systemctl enable vncserver@:1

#サービスを起動します。
sudo systemctl start vncserver@:1

これでGUI化の設定は環境です。ただこのままだと英語表記だし、Google chromeがインストールされていないのでデスクトップ環境の日本語化とGoogle chromeのインストールを行います。

# まずデスクトップ環境の日本語化設定を行います。日本語入ができるようにIME ibus と日本語のフォントのgoogle-noto-sans-japanese-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

# ロケールの設定を変更します。
sudo localectl set-locale LANG=ja_JP.UTF-8

# 設定変更反映のため再起動させます。
reboot

これで日本語化は完了です。続いてGoogle Chrome パッケージをインストールしていきます。
ここから先はroot権限のあるユーザでコマンドを実行してください。

#リポジトリファイルを作成します。 
sudo vi /etc/yum.repos.d/google-chrome.repo

# ファイル内容は以下を記述します。 
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

# yum をアップデートします
sudo yum update

# パッケージをインストールしていきます。
sudo yum install google-chrome-stable

# 正しくインストールできたか確認します。
google-chrome --version
バージョンが表示されればOKです。

これでEC2側で行う設定は全て完了です。あとはクライアント端末にVNC viewerをインストールして、アクセスしてみましょう。

以下サイトからUltraVNC viewerをインストールしてします。
窓の社

Ultra VNC viewerを起動し
["ELastic IPアドレス":5901] という形式で入力し、登録したPWを入力します。
Veiwer_ログイン.png

vnc_ログイン後画面.png
こんな感じで表示されればOKです。
次にGoogle Chromeを起動します。
google_アクセス.png

無事ネットサーフィンできそうです。
これで設定は完了です。

最後に

メモリ1GBでもサクサク動きます(笑)。Linuxってやっぱり軽いですね!
諸事情あって、直接PCからネットワークサーフィンできないときとかに便利かもです。

2022年7月追記

VNC Viewerでログイン後にGoogle Chromeが起動しない場合、Google Chromeをroot権限のユーザで起動している可能性があります。
その場合以下のようなメッセージが表示されます。

[root@ip-xx-xx-xx-xx ec2-user]# google-chrome
[3772:3772:0715/003400.717493:ERROR:zygote_host_impl_linux.cc(90)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.

スライド1.PNG

上記の画像にようにずっと起動を待ってもなにも起きないです。

rootでもgoogle chromeを起動できるようにオプションをつけて、起動させてやる必要があります。
スライド2.PNG

やり方としてはVNC Viewerでログイン後に「システムツール」から「MATE端末」を開いて、

google-chrome --no-sandbox

これでGoogle chromeがrootでも起動するようになります。

MATE端末のコンソール画面にはエラーっぽいメッセージが出るのですが、Proxyが云々という内容なので無視しています。

参考にしたWebサイト

Amazon Linux2 にGUIデスクトップ環境(MATE)をインストールする手順
CentOS7×Chromeでスクレイピング環境を構築するチュートリアル
AWS公式
CentOS7・CentOS8 Google Chromeをインストールする

14
15
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
14
15