Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installing Chromium on Amazon Linux

I am trying to install Chromium (or Chrome, whichever) on an Amazon Linux machine.

I have tried many steps, to no avail. Here is what I have tried:

Simple Yum Install

yum install epel       # worked
yum install chromium

generated error message:

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 install of specific RPM package

I tried downloading a Chrome RPM, both the latest stable version as well as a specific version, and then running

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

It yielded the same error message

Manual procedure

Downloaded binary from https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Linux_x64/532015/

Running it generated the error message

error while loading shared libraries: libXcursor.so.1: cannot open shared object file: No such file or directory

I ran

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

which all worked.

However, then Chrome started complaining about a libcups library :

error while loading shared libraries: libcups.so.2: cannot open shared object file: No such file or directory

libcups wasn't found by yum, and it seems that this is because it is a 32 bit library. Some page recommended to install ia32-libs as a solution, but running yum install ia32-libs showed that it was already installed.

I couldn't get past that point.

Other

  • I also tried steps mentioned here, but that didn't work
  • some pages point to using dpkg, but that command doesn't exist on Amazon Linux apparently
  • apt neither
like image 821
Vic Seedoubleyew Avatar asked Jan 27 '18 20:01

Vic Seedoubleyew


People also ask

How do I install Chrome on Amazon Linux?

The Easy Way All you need to do is run our installer script and you should be good to go. This will automatically configure and enable the official Google repository, import Google's signing key, and install the latest google-chrome-stable executable in your path.

How do I install Chromium on Linux?

Just run sudo apt-get install chromium-browser in a new Terminal window to install Chromium on your Ubuntu, Linux Mint, and other related Linux distributions to get it. Chromium (in case you've never heard of it) is a free, open source project developed (primarily) by Google.

Does chromium work on Linux?

Chromium on Linux has two general flavors: You can either get Google Chrome or chromium-browser (see Linux Chromium Packages). This page tries to describe the differences between the two. In short, Google Chrome is the Chromium open source project built, packaged, and distributed by Google.


3 Answers

None of these answers , work, and none of them actually solves problem for amazon linux,

To really solve the problem if you are using EC2 instance or any other server where you are running Amazon linux, you should follow the below steps .

  1. Enable and install Extra Packages for Enterprise Linux by running the command

    sudo amazon-linux-extras install epel -y
    
  2. Post installing all the extra packages successfully, Install chromimum as usual

    sudo yum install -y chromium
    

Once you do that Chromium will have all required such as libatk* libgdk* etc ...

You should be able to easily launch Chromium

The missed out packages that you are looking here, are actually not missedout they are kind of default you just have to enable them , this is well documented in AWS documentation .

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

like image 195
Aravind.HU Avatar answered Oct 07 '22 03:10

Aravind.HU


In order to get headless chrome working on Lambda, I deployed an identical AMI as an EC2 instance (currently amzn-ami-hvm-2017.03.1.20170812-x86_64-gp2). After installing chrome, the usual litany of missing dependencies begins.

Reference: https://medium.com/mockingbot/run-puppeteer-chrome-headless-on-ec2-amazon-linux-ami-6c9c6a17bee6

Navigate to the folder containing the chrome executable and use ldd to check for missing dependencies:

$ 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

Install the following:

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

Check again:

$ 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

We need to grab these dependencies from a maddeningly large set of RPMs:

# 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

That should resolve all the dependencies and chrome should be able to run, finally!!

like image 22
laloumen Avatar answered Oct 07 '22 03:10

laloumen


I use chromium for headless testing via AWS Ubuntu launched through CodeBuild. I found I had to update node and install a set of chromium dependencies.

#!/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
like image 36
mike mckechnie Avatar answered Oct 07 '22 02:10

mike mckechnie