Ubuntu 17.10安装puppeteer遇权限拒绝错误,求解决方法
解决Ubuntu 17.10下Puppeteer安装权限拒绝的问题
我处理过不少类似的Ubuntu环境下Puppeteer安装权限问题,给你几个靠谱的解决方案,你可以挨个尝试:
带权限参数直接安装
Puppeteer安装时会自动下载Chromium,这个过程经常因为权限不足报错,试试加上--unsafe-perm参数,它会允许安装脚本以当前用户的权限完成Chromium的下载和配置:npm install puppeteer --unsafe-perm=true修复npm缓存目录权限
有时候权限问题出在npm的缓存目录,先确认缓存路径,再修正它的所属权限:- 查看npm缓存目录:
npm config get cache - 修改目录权限为当前用户所有:
sudo chown -R $USER:$USER $(npm config get cache)
改完之后再重新执行
npm install puppeteer试试。- 查看npm缓存目录:
手动指定Chromium路径安装
如果自动下载Chromium一直卡权限,可以手动下载对应版本的Chromium,再告诉Puppeteer它的位置:- 先查看你要安装的Puppeteer版本对应的Chromium版本(可以看Puppeteer包的
package.json里的chromium_revision字段),下载适配Linux x64的压缩包,解压到项目目录下(比如./chrome-linux)。 - 安装时通过环境变量指定Chromium路径:
PUPPETEER_EXECUTABLE_PATH=./chrome-linux/chrome npm install puppeteer
后续在代码里启动浏览器时,也需要指定这个路径:
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ executablePath: './chrome-linux/chrome' }); // 你的业务代码 await browser.close(); })();- 先查看你要安装的Puppeteer版本对应的Chromium版本(可以看Puppeteer包的
用nvm管理Node版本(彻底规避系统权限问题)
系统自带的Node/npm经常会有权限限制,用nvm安装用户级别的Node环境,就能避免很多权限坑:- 去nvm的官方仓库获取最新的安装脚本,在终端执行完成安装。
- 重启终端后,安装长期支持版Node:
nvm install --lts - 切换到这个Node版本,再安装Puppeteer:
nvm use --lts npm install puppeteer
内容的提问来源于stack exchange,提问作者d-_-b
相关产品推荐
相关产品推荐

