it-swarm.com.de

Chromium unter Amazon Linux installieren

Ich versuche, Chromium (oder Chrome, je nachdem) auf einer Amazon Linux-Maschine zu installieren.

Ich habe viele Schritte versucht, ohne Erfolg. Folgendes habe ich ausprobiert:

Einfach Yum Install

yum install epel       # worked
yum install chromium

generierte Fehlermeldung:

Error: Package: chromium-31.0.1650.63-2.el6.x86_64 (chromium-el6)
           Requires: libgnome-keyring.so.0()(64bit)
Error: Package: chromium-31.0.1650.63-2.el6.x86_64 (chromium-el6)
           Requires: libgtk-x11-2.0.so.0()(64bit)
Error: Package: chromium-31.0.1650.63-2.el6.x86_64 (chromium-el6)
           Requires: libgdk_pixbuf-2.0.so.0()(64bit)
Error: Package: chromium-31.0.1650.63-2.el6.x86_64 (chromium-el6)
           Requires: libXss.so.1()(64bit)
Error: Package: chromium-31.0.1650.63-2.el6.x86_64 (chromium-el6)
           Requires: libgdk-x11-2.0.so.0()(64bit)
Error: Package: chromium-31.0.1650.63-2.el6.x86_64 (chromium-el6)
           Requires: libcanberra-gtk2(x86-64)
Error: Package: chromium-31.0.1650.63-2.el6.x86_64 (chromium-el6)
           Requires: libatk-1.0.so.0()(64bit)

Sie müssen ein bestimmtes RPM-Paket installieren

Ich habe versucht, ein Chrome-RPM herunterzuladen, sowohl die letzte stabile Version als auch eine bestimmte Version, und dann auszuführen

yum install google-chrome-stable-64.0.3282.119-1.x86_64.rpm

Es wurde dieselbe Fehlermeldung ausgegeben

Manuelle Prozedur

Heruntergeladene Binärdatei von https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Linux_x64/532015/

Beim Ausführen wurde die Fehlermeldung generiert

fehler beim Laden von gemeinsam genutzten Bibliotheken: libXcursor.so.1: Datei für freigegebene Objekte kann nicht geöffnet werden: Keine solche Datei oder Verzeichnis

Ich rannte 

yum install libXcursor
yum install libXfixes     # because chrome was then complaining about that library
yum install libXdamage    # and subsequently that one

was alles funktionierte.

Dann begann Chrome, sich über eine libcups-Bibliothek zu beschweren:

fehler beim Laden von gemeinsam genutzten Bibliotheken: libcups.so.2: Datei für gemeinsam genutzte Objekte kann nicht geöffnet werden: Keine solche Datei oder Verzeichnis

libcups wurde von yum nicht gefunden und es scheint, dass dies eine 32-Bit-Bibliothek ist. Einige Seiten empfahlen die Installation von ia32-libs als Lösung, aber die Ausführung von yum install ia32-libs zeigte, dass es bereits installiert war.

Ich konnte diesen Punkt nicht überwinden.

Andere

  • Ich habe auch die genannten Schritte ausprobiert hier , aber das hat nicht funktioniert
  • einige Seiten weisen auf die Verwendung von dpkg hin, aber dieser Befehl existiert anscheinend nicht bei Amazon Linux
  • apt weder
4

Um Headless Chrome mit Lambda zu arbeiten, setzte ich einen identischen AMI als EC2-Instanz ein (derzeit amzn-AMI-hvm-2017.03.1.20170812-x86_64-gp2). Nach der Installation von Chrome beginnt die übliche Anzahl fehlender Abhängigkeiten.

Referenz: https://medium.com/mockingbot/run-puppeteer-chrome-headless-on-ec2-Amazon-linux-AMI-6c9c6a17bee6

Navigieren Sie zu dem Ordner, der die ausführbare Datei von Chrome enthält, und suchen Sie mit Hilfe von ldd nach fehlenden Abhängigkeiten:

$ ldd chrome | grep not
libpangocairo-1.0.so.0 => not found
libpango-1.0.so.0 => not found
libcairo.so.2 => not found
libXcursor.so.1 => not found
libXdamage.so.1 => not found
libXfixes.so.3 => not found
libcups.so.2 => not found
libXss.so.1 => not found
libXrandr.so.2 => not found
libgconf-2.so.4 => not found
libatk-1.0.so.0 => not found
libgtk-3.so.0 => not found
libgdk-3.so.0 => not found
libgdk_pixbuf-2.0.so.0 => not found

Installieren Sie Folgendes:

$ Sudo yum install cups-libs dbus-glib libXrandr libXcursor libXinerama cairo cairo-gobject pango

Nochmal Überprüfen:

$ ldd chrome | grep not
libXss.so.1 => not found
libgconf-2.so.4 => not found
libatk-1.0.so.0 => not found
libgtk-3.so.0 => not found
libgdk-3.so.0 => not found
libgdk_pixbuf-2.0.so.0 => not found

Wir müssen diese Abhängigkeiten aus einer unglaublich großen Anzahl von RPMs ziehen:

# Install ATK from CentOS 7
$ Sudo rpm -ivh --nodeps http://mirror.centos.org/centos/7/os/x86_64/Packages/atk-2.22.0-3.el7.x86_64.rpm
$ Sudo rpm -ivh --nodeps http://mirror.centos.org/centos/7/os/x86_64/Packages/at-spi2-atk-2.22.0-2.el7.x86_64.rpm
$ Sudo rpm -ivh --nodeps http://mirror.centos.org/centos/7/os/x86_64/Packages/at-spi2-core-2.22.0-1.el7.x86_64.rpm
# Install GTK from Fedora 20
$ 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
# Install Gdk-Pixbuf from Fedora 16
$ 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

Das sollte alle Abhängigkeiten auflösen und Chrome sollte endlich laufen können !!

2
laloumen

Ich verwende Chrom für Tests ohne Kopf über AWS Ubuntu, das über CodeBuild gestartet wurde. Ich fand, dass ich Knoten aktualisieren und eine Reihe von Chromabhängigkeiten installieren musste.

#!/bin/sh
echo "Installing nodejs (which will include node and npm)"
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejs  
echo "Installing chromium dependencies"
apt-get install -yq gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 \
libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \
ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
0
mike mckechnie