Установка Chromium в Amazon Linux

Я пытаюсь установить Chromium (или Chrome, что угодно) на машину Amazon Linux.

Я пробовал много шагов, но безрезультатно. Вот что я пробовал:

Простая установка Yum

yum install epel       # worked
yum install chromium

сгенерированное сообщение об ошибке:

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)

Yum установка определенного пакета RPM

Я попытался загрузить Chrome RPM, оба последняя стабильная версия, а также конкретная версия, а затем запускается

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

Это привело к тому же сообщению об ошибке

Ручная процедура

Бинарный файл загружен с https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Linux_x64/532015/

При запуске появилось сообщение об ошибке

ошибка при загрузке разделяемых библиотек: libXcursor.so.1: невозможно открыть файл общих объектов: нет такого файла или каталога

Я побежал

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

который все работал.

Однако затем Chrome начал жаловаться на libcups библиотеку:

ошибка при загрузке разделяемых библиотек: libcups.so.2: невозможно открыть файл общих объектов: нет такого файла или каталога

libcups не был найден yum, и похоже, что это потому, что это 32-битная библиотека. Некоторые страницы рекомендовали установить ia32-libs в качестве решения, но запуск yum install ia32-libs показал, что оно уже установлено.

Я не мог пройти мимо этого момента.

Другой

  • Я также пробовал шаги, упомянутые здесь, но это не сработало.
  • некоторые страницы указывают на использование dpkg, но эта команда явно не существует в Amazon Linux
  • apt ни

person Vic Seedoubleyew    schedule 27.01.2018    source источник
comment
почему ты хочешь сделать это? Если это так, что у вас может быть полноценная среда разработки на AWS, я рекомендую вместо этого использовать Ubuntu. AWS Linux действительно не хочет быть графическим (я пошел по этому пути и в итоге остался таким же несчастным, как и вы).   -  person kdgregory    schedule 28.01.2018
comment
@kdgregory спасибо за комментарий. На самом деле я ищу не графическое оформление, а использование хрома в безголовом режиме. На самом деле я использую AWS только как место для тестирования того, что я делаю на Linux, а не на Mac.   -  person Vic Seedoubleyew    schedule 29.01.2018
comment
sudo yum установить libX11 Gconf2 fontconfig   -  person palafox_e    schedule 21.03.2018
comment
@palafox, спасибо, попробую. Вы действительно сделали это на AWS?   -  person Vic Seedoubleyew    schedule 31.03.2018
comment
@VicSeedoubleyew, возможно, это поможет вам gist.github.com/palafoxernesto/38efba25b845ba3   -  person palafox_e    schedule 04.04.2018


Ответы (3)


Ни один из этих ответов не работает, и ни один из них на самом деле не решает проблему для amazon linux,

Чтобы действительно решить проблему, если вы используете экземпляр EC2 или любой другой сервер, на котором работает Amazon linux, вы должны выполнить следующие шаги.

  1. Включите и установите дополнительные пакеты для Enterprise Linux, выполнив команду

    sudo amazon-linux-extras install epel -y
    
  2. После успешной установки всех дополнительных пакетов установите chromimum как обычно

    sudo yum install -y chromium
    

Как только вы это сделаете, в Chromium будет все необходимое, например libatk * libgdk * и т. Д.

Вы должны легко запустить Chromium

Пропущенные пакеты, которые вы здесь просматриваете, на самом деле не пропущены, они являются своего рода стандартными, вам просто нужно их включить, это хорошо задокументировано в документации AWS.

https://aws.amazon.com/premiumsupport/knowledge-center/ec2-enable-epel/

person Aravind.HU    schedule 22.01.2021
comment
Большое спасибо! У меня не будет времени посвящать это тестированию прямо сейчас, но это звучит актуально и, надеюсь, поможет другим людям. Спасибо, что поделился! - person Vic Seedoubleyew; 29.01.2021
comment
Отличный ответ, это прекрасно сработало для меня. - person Mardin Yadegar; 27.05.2021

Чтобы безголовый хром работал на Lambda, я развернул идентичный AMI в качестве экземпляра EC2 (в настоящее время amzn-ami-hvm-2017.03.1.20170812-x86_64-gp2). После установки хрома начинается обычный список недостающих зависимостей.

Ссылка: https://medium.com/mockingbot/run-puppeteer-chrome-headless-on-ec2-amazon-linux-ami-6c9c6a17bee6

Перейдите в папку, содержащую исполняемый файл Chrome, и используйте ldd для проверки отсутствующих зависимостей:

$ 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

Установите следующее:

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

Проверить снова:

$ 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

Нам нужно получить эти зависимости из безумно большого набора 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

Это должно разрешить все зависимости, и Chrome наконец-то сможет работать !!

person laloumen    schedule 05.04.2018
comment
Спасибо тебе за это. Недавно работал с ElasticBeanstalk. Создал эту суть, чтобы запускать все это как файл конфигурации, а не на машине. - person clay; 14.09.2018
comment
Спасибо за это! Я сходил с ума, как найти недостающие пакеты ... - person Carolina Herrera; 28.07.2020

Я использую хром для безголового тестирования через AWS Ubuntu, запущенный через CodeBuild. Я обнаружил, что мне нужно обновить узел и установить набор зависимостей хрома.

#!/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
person mike mckechnie    schedule 11.11.2018