我无法安装puppeteer
作为项目依赖项,我尝试重新安装节点。任何人都知道如何解决这个问题?运行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 -v
v9.4.0
$ npm -v
5.6.0
我尝试安装:
root@server:/var/www/html# npm install --save puppeteer
错误讯息:
> 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
我在引用的问题中看不到任何解决方法:https://github.com/GoogleChrome/puppeteer/issues/375
答案 0 :(得分:7)
2019年4月20日编辑:
lauraalvarezz1建议的简单解决方案是,
sudo npm install -g puppeteer --unsafe-perm=true
只要您信任木偶操作员并希望它在全球范围内安装木偶操作员,这是可以的。
但请注意使用--unsafe-perm=true
来解决与权限相关的问题。原因是:
--no-sandbox
,因为使用此命令安装的chrome可能无法在没有此参数的情况下运行。见github issue。您已使用sudo
安装了npm。因此,您在全球范围内安装的任何内容都需要sudo
。
要在var/www/html
文件夹上安装任何内容,您必须拥有该文件夹
sudo chown -R $USER /var/www/html
或者您可以使用nvm来管理npm。从技术上讲,它将使用您的主目录和您当前的用户。
安装nvm后,您可以使用它全局安装puppeteer,
npm i -g puppeteer
或者您必须使用sudo
sudo npm install --save puppeteer
但是,由于权限错误,不会下载Chrome,这就是您必须按照之前的说明使用---unsafe-perm=true
的原因。
安全相关资源:
祝你好运!
答案 1 :(得分:6)
在您的终端上运行:
sudo npm install -g puppeteer --unsafe-perm=true
答案 2 :(得分:2)
在开始之前,请确保您具有最新版本的Node.js。
注意:Puppeteer至少需要Node v6.4.0,但是下面的示例使用async / await,只有Node v7.6.0或更高版本才支持。
您可以使用以下命令检查您拥有的Node.js版本:
node -v
# OR nodejs -v
如果您的Node.js版本低于v7.6.0,则可以completely uninstall your current version of Node.js。
然后,您可以使用完整的reinstallation using a PPA:
sudo apt update
curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt install nodejs
sudo apt install build-essential
您可以检查系统上安装的Node.js和NPM的新版本:
node -v
npm -v
最后,您可以安装Puppeteer:
sudo npm install puppeteer --unsafe-perm=true --allow-root
现在您可以使用node
命令运行Puppeteer脚本:
node puppeteer-script.js