Install puppeteer and chrome on amazon linux
· Howto · Javascript · Aws · Node
When automating frontend testing or prerendering on AWS, Chrome and Puppeteer require several native dependencies that aren’t available by default on Amazon Linux. Here’s a provisioning script to install Puppeteer, Chrome, and its dependencies on an AWS EC2 Amazon Linux AMI.
Note: This script targets Node.js 8 and the Amazon Linux AMI available in 2018. Package versions and repository URLs may need updating for newer environments.
#!/bin/env bash
# Install 3rd party repositories
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 dependencies
sudo yum install -y nodejs gcc-c++ make cups-libs dbus-glib libXrandr libXcursor libXinerama cairo cairo-gobject pango libXScrnSaver gtk3
# On Amazon Linux 2 Downgrade ALSA library
sudo yum remove alsa-lib-1.1.4.1-2.amzn2.i686
sudo yum install alsa-lib-1.1.3-3.amzn2.x86_64
# Remove old versions of node and npm
sudo yum remove -y nodejs npm
# Install yarn
sudo yum install -y yarn
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -
mkdir puppeteer
cd puppeteer
npm install puppeteer
cd .local-chromium/linux*/chrome-linux
Missing dependencies can be found simply filtering Chrome’s shared libraries:
ldd chrome | grep not
Comment, review or star at: https://gist.github.com/maxrodrigo/9d91e48c19244ead6ef5b466957be0ab