Skip to content

Instantly share code, notes, and snippets.

@maxrodrigo
Last active August 10, 2024 13:53
Show Gist options
  • Save maxrodrigo/9d91e48c19244ead6ef5b466957be0ab to your computer and use it in GitHub Desktop.
Save maxrodrigo/9d91e48c19244ead6ef5b466957be0ab to your computer and use it in GitHub Desktop.
Puppeteer/Chrome Headless on EC2 Amazon Linux AMI
#!/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 httls://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
@bschelling
Copy link

on amazon linux 2 i had to:

> sudo yum remove alsa-lib-1.1.4.1-2.amzn2.i686
> sudo yum install alsa-lib-1.1.3-3.amzn2.x86_64

to make it work, but thanks! :)

@maxrodrigo
Copy link
Author

Updated. Thanks @bschelling!

@AviFix
Copy link

AviFix commented Feb 29, 2020

3rd party repositories return 404

@hieu-e
Copy link

hieu-e commented Jun 20, 2021

Try just installing chromium which then installs all the required dependencies

sudo amazon-linux-extras install epel -y
sudo yum install -y chromium
npm install puppeteer

@mugeco
Copy link

mugeco commented Sep 23, 2021

Saved my day! Thanks a lot @hieu-e

@thanhn1012
Copy link

@hieu-e
Thank you so much!

@droidlabour
Copy link

Thanks @hieu-e

@chaudhry
Copy link

sudo amazon-linux-extras install epel -y

-bash: amazon-linux-extras: command not found

@bschelling
Copy link

@chaudhry you need to be on amazon linux - what does /cat/etc/system-release say?

@chaudhry
Copy link

@chaudhry you need to be on amazon linux - what does /cat/etc/system-release say?

NAME="Amazon Linux AMI"
VERSION="2018.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2018.03"
PRETTY_NAME="Amazon Linux AMI 2018.03"

@chaudhry
Copy link

@chaudhry you need to be on amazon linux - what does /cat/etc/system-release say?

NAME="Amazon Linux AMI" VERSION="2018.03" ID="amzn" ID_LIKE="rhel fedora" VERSION_ID="2018.03" PRETTY_NAME="Amazon Linux AMI 2018.03"

I think my AMI is old. May be I need to upgrade my server to AMI 2. Please correct me if I'm wrong.

@bschelling
Copy link

yes that looks like the problem, mine says "Amazon Linux release 2 (Karoo)"

@hieu-e
Copy link

hieu-e commented May 11, 2022

@chaudhry you need to be on amazon linux - what does /cat/etc/system-release say?

NAME="Amazon Linux AMI" VERSION="2018.03" ID="amzn" ID_LIKE="rhel fedora" VERSION_ID="2018.03" PRETTY_NAME="Amazon Linux AMI 2018.03"

I think my AMI is old. May be I need to upgrade my server to AMI 2. Please correct me if I'm wrong.

You can try the following if using the original Amazon Linux Amazon Machine Image

sudo yum-config-manager --enable epel

@lucashenning
Copy link

Thank you! I was trying to make Puppeteer work on Elastic Beanstalk (Amazon Linux 2). Your file was a good start but I had to make a few changes.

Sharing the working version for others: https://gist.github.com/lucashenning/8f6807eab8b5d99caafd2a507f770ba1

@maxrodrigo
Copy link
Author

@lucashenning
Thanks for sharing.

@dangpmit
Copy link

dangpmit commented Apr 7, 2023

What about Amazon Linux 2023 AMI ? anyone can help me ?

@Lavesh7806
Copy link

Any solution for Amazon Linux 2023 AMI?

@hieu-e
Copy link

hieu-e commented Dec 1, 2023

I haven't look at AL2023, I know they have changed a few things. If I have time next week, will have a look. However, if I don't have time, we'll be migrating across to AL2023 next year and will look at it then.

@hieu-e
Copy link

hieu-e commented Dec 4, 2023

Try this for Amazon Linux 2023

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
sudo dnf install google-chrome-stable_current_*.rpm -y
sudo dnf install nodejs -y
npm install puppeteer

@hieu-e
Copy link

hieu-e commented Dec 7, 2023

@padi-dev-dangpm @Lavesh7806 have you tried the steps above?

@Lavesh7806
Copy link

haven't tried it, I just used node18 version with AMI2

@Success-Guy
Copy link

Success-Guy commented Jan 9, 2024

Try this for Amazon Linux 2023

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
sudo dnf install google-chrome-stable_current_*.rpm -y
sudo dnf install nodejs -y
npm install puppeteer

That worked for me.
Thank you @hieu-e

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment