LoginSignup
5
8

More than 5 years have passed since last update.

Amazon Linux に Chrome をインストールする

Posted at

概要

Amazon Linux で Headless Chrome を実行しようとしたところ、Chrome のインストールで色々ハマったので手順を残しておく。
インストールしたバージョンは以下の通り。

  • Amazon Linux 2018.03
  • Google Chrome 71.0.3578.98

問題点

Amazon Linux には GUI 関連のパッケージが提供されていないため、そのまま Chrome をパッケージでインストールしようとすると依存関係のエラーが多発します。

ここ とか ここ で紹介されている以下のスクリプトを実行してみたが、同様に依存関係の解決で無限ループにハマってうまく動きませんでした。
Chrome のアップデートにより依存関係が変わったことが原因と思われます。

# curl https://intoli.com/install-google-chrome.sh | bash
...
Finding dependency for libwayland-egl.so.1
Finding dependency for libwayland-egl.so.1
Finding dependency for libwayland-egl.so.1
Finding dependency for libwayland-egl.so.1
Finding dependency for libwayland-egl.so.1
...

インストール手順

Headless で実行することが前提のため、GUI 関連の依存パッケージは無視して必要最低限のみインストールします。
Amazon Linx のリポジトリにないものは CentOS7 と Fedora のリポジトリから取得しました。

まず、依存パッケージをインストール。

$ sudo yum install -y cups-libs dbus-glib libXrandr libXcursor libXinerama cairo cairo-gobject pango ipa-gothic-fonts ipa-mincho-fonts
$ sudo rpm -ivh --nodeps http://mirror.centos.org/centos/7/os/x86_64/Packages/atk-2.28.1-1.el7.x86_64.rpm
$ sudo rpm -ivh --nodeps http://mirror.centos.org/centos/7/os/x86_64/Packages/at-spi2-atk-2.26.2-1.el7.x86_64.rpm
$ sudo rpm -ivh --nodeps http://mirror.centos.org/centos/7/os/x86_64/Packages/at-spi2-core-2.28.0-1.el7.x86_64.rpm
$ sudo rpm -ivh --nodeps http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/20/Fedora/x86_64/os/Packages/g/GConf2-3.2.6-7.fc20.x86_64.rpm
$ sudo rpm -ivh --nodeps http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/20/Fedora/x86_64/os/Packages/l/libXScrnSaver-1.2.2-6.fc20.x86_64.rpm
$ sudo rpm -ivh --nodeps http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/20/Fedora/x86_64/os/Packages/l/libxkbcommon-0.3.1-1.fc20.x86_64.rpm
$ sudo rpm -ivh --nodeps http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/20/Fedora/x86_64/os/Packages/l/libwayland-client-1.2.0-3.fc20.x86_64.rpm
$ sudo rpm -ivh --nodeps http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/20/Fedora/x86_64/os/Packages/l/libwayland-cursor-1.2.0-3.fc20.x86_64.rpm
$ sudo rpm -ivh --nodeps http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/20/Fedora/x86_64/os/Packages/g/gtk3-3.10.4-1.fc20.x86_64.rpm
$ sudo rpm -ivh --nodeps http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/16/Fedora/x86_64/os/Packages/gdk-pixbuf2-2.24.0-1.fc16.x86_64.rpm

次に google の公式リポジトリを登録。

$ sudo touch /etc/yum.repos.d/google-chrome.repo
$ echo -e "[google-chrome]\nname=google-chrome\nbaseurl=http://dl.google.com/linux/chrome/rpm/stable/\$basearch\nenabled=1\ngpgcheck=1\ngpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub" | sudo tee -a /etc/yum.repos.d/google-chrome.repo

最後に rpm をダウンロードしてインストール。

$ sudo yumdownloader google-chrome-stable
$ sudo rpm -i --nodeps google-chrome-stable-71.0.3578.98-1.x86_64.rpm
警告: google-chrome-stable-71.0.3578.98-1.x86_64.rpm: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 7fac5991: NOKEY
Error: Could not find xdg-icon-resource
警告: %post(google-chrome-stable-71.0.3578.98-1.x86_64) スクリプトの実行に失敗しました。終了ステータス 1

xdg-icon-resource が見つからないとエラーが発生していますが、これは GUI 環境用のアイコンを登録する処理なので無視します。

これで /opt/google/chrome/ にインストールされました。

動作確認

Google トップページのスクリーンショットを撮ってみます。

$ /opt/google/chrome/chrome --headless --disable-gpu --window-size=1024,768 --hide-scrollbars --screenshot='google.png' https://www.google.co.jp/
/opt/google/chrome/chrome: /lib64/libdbus-1.so.3: no version information available (required by /usr/lib64/libatk-bridge-2.0.so.0)
/opt/google/chrome/chrome: /lib64/libdbus-1.so.3: no version information available (required by /usr/lib64/libatspi.so.0)
/opt/google/chrome/chrome: /lib64/libdbus-1.so.3: no version information available (required by /usr/lib64/libatk-bridge-2.0.so.0)
/opt/google/chrome/chrome: /lib64/libdbus-1.so.3: no version information available (required by /usr/lib64/libatspi.so.0)
Fontconfig warning: "/etc/fonts/conf.d/30-metric-aliases.conf", line 84: Having multiple <family> in <alias> isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/conf.d/30-metric-aliases.conf", line 84: Having multiple <family> in <alias> isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/conf.d/30-metric-aliases.conf", line 93: Having multiple <family> in <alias> isn't supported and may not work as expected
...
Fontconfig warning: "/etc/fonts/conf.d/45-latin.conf", line 75: Having multiple <family> in <alias> isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/conf.d/45-latin.conf", line 75: Having multiple <family> in <alias> isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/conf.d/65-2-ipa-mincho.conf", line 17: Having multiple values in <test> isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/conf.d/65-3-ipa-gothic.conf", line 24: Having multiple values in <test> isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/conf.d/65-3-ipa-gothic.conf", line 37: Having multiple values in <test> isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/fonts.conf", line 82: unknown element "blank"
[0118/143501.485043:ERROR:gpu_process_transport_factory.cc(967)] Lost UI shared context.
/proc/self/exe: /lib64/libdbus-1.so.3: no version information available (required by /usr/lib64/libatk-bridge-2.0.so.0)
/proc/self/exe: /lib64/libdbus-1.so.3: no version information available (required by /usr/lib64/libatspi.so.0)
[0118/143502.969819:INFO:headless_shell.cc(546)] Written to file google.png.

取得した画像が以下。

google.png

ライブラリやフォント関連の warning が大量に表示されましたが、スクリーンショット自体は正常に撮れていました。
日本語もOK。

最後に

GUI 系の依存パッケージを無視することで Amazon Linux に Chrome がインストールできました。
これからテストや JavaScript の実行結果取得等に活用したいと思います。

5
8
1

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
5
8