Amazon Linux에 Chrome 설치

Amazon Linux에 Chrome 설치

2022-10-06 last update

6 minutes reading headless-chrome Chrome AmazonLinux AWS

개요



Amazon Linux에서 Headless Chrome을 실행하려고 했는데, Chrome 설치에서 여러가지 빠졌기 때문에 절차를 남겨둡니다.
설치한 버전은 다음과 같습니다.
  • Amazon Linux 2018.03
  • Google 크롬 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.
    

    취득한 화상이 이하.



    라이브러리와 폰트 관련 warning이 대량으로 표시되었지만, 스크린샷 자체는 정상적으로 찍혀 있었습니다.
    일본어도 OK.

    마지막으로



    GUI 기반 종속 패키지를 무시하여 Amazon Linux에 Chrome을 설치할 수 있었습니다.
    지금부터 테스트나 JavaScript의 실행 결과 취득 등에 활용하고 싶습니다.