J'essaie d'installer Chromium (ou Chrome, selon le cas) sur une machine Amazon Linux.
J'ai essayé plusieurs étapes, en vain. Voici ce que j'ai essayé:
yum install epel # worked
yum install chromium
message d'erreur généré:
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)
J'ai essayé de télécharger un RPM Chrome, à la fois la dernière version stable ainsi qu'une version spécifique, puis de l'exécuter.
yum install google-chrome-stable-64.0.3282.119-1.x86_64.rpm
Il a généré le même message d'erreur
Fichier binaire téléchargé à partir de https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Linux_x64/532015/
L'exécuter a généré le message d'erreur
erreur lors du chargement des bibliothèques partagées: libXcursor.so.1: impossible d'ouvrir le fichier objet partagé: aucun fichier ou répertoire de ce type
Iran
yum install libXcursor
yum install libXfixes # because chrome was then complaining about that library
yum install libXdamage # and subsequently that one
qui tout a fonctionné.
Cependant, alors Chrome a commencé à se plaindre d'une bibliothèque libcups
:
erreur lors du chargement des bibliothèques partagées: libcups.so.2: impossible d'ouvrir le fichier objet partagé: aucun fichier ou répertoire de ce type
libcups
n'a pas été trouvé par yum, et il semble que c'est parce qu'il s'agit d'une bibliothèque 32 bits. Certaines pages recommandaient d'installer ia32-libs
comme solution, mais l'exécution de yum install ia32-libs
montrait qu'il était déjà installé.
Je ne pouvais pas aller au-delà de ce point.
dpkg
, mais cette commande n'existe apparemment pas sur Amazon Linux.apt
niPour que Chrome puisse fonctionner sans chrome sur Lambda, j'ai déployé une AMI identique à celle d'une instance EC2 (actuellement amzn-AMI-hvm-2017.03.1.20170812-x86_64-gp2). Après l’installation de chrome, la litanie habituelle des dépendances manquantes commence.
Référence: https://medium.com/mockingbot/run-puppeteer-chrome-headless-on-ec2-Amazon-linux-AMI-6c9c6a17bee6
Naviguez jusqu'au dossier contenant l'exécutable de chrome et utilisez ldd pour rechercher les dépendances manquantes:
$ 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
Installez les éléments suivants:
$ Sudo yum install cups-libs dbus-glib libXrandr libXcursor libXinerama cairo cairo-gobject pango
Revérifier:
$ 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
Nous devons extraire ces dépendances d’un ensemble extrêmement volumineux de RPM:
# 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
Cela devrait résoudre toutes les dépendances et chrome devrait pouvoir fonctionner, enfin !!
J'utilise le chrome pour les tests sans tête via AWS Ubuntu lancé via CodeBuild. J'ai trouvé que je devais mettre à jour le noeud et installer un ensemble de dépendances de chrome.
#!/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