I'm unable to install puppeteer
as a project dependency, and I've tried re-installing node. Anyone have an idea on how to fix this? Running Ubuntu 17.10 x64
sudo apt-get purge nodejs;
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -;
apt-get install -y nodejs;
sudo npm install -g n;
sudo n stable;
Node versions:
$ node -v
v9.4.0
$ npm -v
5.6.0
I try to install:
root@server:/var/www/html# npm install --save puppeteer
Error message:
> puppeteer@1.1.0 install /var/www/html/node_modules/puppeteer
> node install.js
ERROR: Failed to download Chromium r536395! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.
{ Error: EACCES: permission denied, mkdir '/var/www/html/node_modules/puppeteer/.local-chromium'
errno: -13,
code: 'EACCES',
syscall: 'mkdir',
path: '/var/www/html/node_modules/puppeteer/.local-chromium' }
npm WARN project@1.0.0 No description
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! puppeteer@1.1.0 install: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the puppeteer@1.1.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-02-19T15_55_52_669Z-debug.log
I don't see any ways to fix this in the referenced issue: https://github.com/GoogleChrome/puppeteer/issues/375
Run this on your terminal:
EDIT 20th April 2019:
The easy solution suggested by lauraalvarezz1 is,
This is okay as long as you trust puppeteer and want it to install puppeteer globally.
However beware of using
--unsafe-perm=true
for permission related problems. Reasons are:--no-sandbox
in every script you run, because the chrome installed with this command might not run without this parameter. See this github issue.You have installed npm with
sudo
. Thus anything you install globally will requiresudo
.To install anything on
var/www/html
folder, either you have to own that folder,Or you can use nvm to manage npm. Technically it will use your home directory and your current user.
After installing nvm, you can install puppeteer globally with it,
or you have to use sudo
However chromium will not be downloaded due to permission error, that's why you have to use
---unsafe-perm=true
as stated before.Security Related Resources:
Best of luck!
Before you begin, make sure you have the most recent version of Node.js.
The Puppeteer Documentation states:
You can check which version of Node.js you have using the following command:
If your version of Node.js is less then v7.6.0, you can completely uninstall your current version of Node.js.
Then, you can use complete the reinstallation using a PPA:
You can check the new versions of Node.js and NPM installed on your system:
Finally, you can install Puppeteer:
Now you can run Puppeteer scripts using the
node
command: