CentOS 7 安装 Puppeteer & Google Chrome

发布于:2024-04-30 ⋅ 阅读:(33) ⋅ 点赞:(0)

由于需要使用到了 Puppeteer 功能,安装了多次失败而告终。最终找到了一个可以安装成功的方式,特此记录下来。

安装 Puppeteer

需要注意 Node.js 版本,我使用的是 16.x

cnpm i puppeteer

安装 Google Chrome

这里需要注意的一下是,一般情况下我们使用 npx puppeteer browsers install chrome 命令即可安装成功,但是我在安装中出现了以下问题

node:fs:1583
  handleErrorFromBinding(ctx);
  ^

Error: EACCES: permission denied, stat '/root/.config/puppeteer'
    at Object.statSync (node:fs:1583:3)
    at isDirectorySync (/app/bookstack/node_modules/.store/cosmiconfig@9.0.0/node_modules/cosmiconfig/dist/util.js:88:35)
    at search (/app/bookstack/node_modules/.store/cosmiconfig@9.0.0/node_modules/cosmiconfig/dist/ExplorerSync.js:47:47)
    at emplace (/app/bookstack/node_modules/.store/cosmiconfig@9.0.0/node_modules/cosmiconfig/dist/util.js:36:20)
    at search (/app/bookstack/node_modules/.store/cosmiconfig@9.0.0/node_modules/cosmiconfig/dist/ExplorerSync.js:71:50)
    at emplace (/app/bookstack/node_modules/.store/cosmiconfig@9.0.0/node_modules/cosmiconfig/dist/util.js:36:20)
    at search (/app/bookstack/node_modules/.store/cosmiconfig@9.0.0/node_modules/cosmiconfig/dist/ExplorerSync.js:71:50)
    at emplace (/app/bookstack/node_modules/.store/cosmiconfig@9.0.0/node_modules/cosmiconfig/dist/util.js:36:20)
    at search (/app/bookstack/node_modules/.store/cosmiconfig@9.0.0/node_modules/cosmiconfig/dist/ExplorerSync.js:71:50)
    at emplace (/app/bookstack/node_modules/.store/cosmiconfig@9.0.0/node_modules/cosmiconfig/dist/util.js:36:20) {
  errno: -13,
  syscall: 'stat',
  code: 'EACCES',
  path: '/root/.config/puppeteer'
}

指定了 --user-data-dir= 还是同样的问题,还是出现权限不足。

这可能是由于环境变量 HOME 未正确设置所致。您可以尝试手动设置 HOME 环境变量来解决这个问题。

export HOME=/app/aaa

运行 puppeteer 安装命令

npx puppeteer browsers install chrome --user-data-dir=/app/aaa/.config/puppeteer

此时 Google Chrome 安装成功。

Google Chrome 安装成功了,但是还是无法使用,出现新的问题

/app/aaa/puppeteer/chrome/linux-124.0.6367.78/chrome-linux64/chrome: error while loading shared libraries: libatk-bridge-2.0.so.0: cannot open shared object file: No such file or directory

安装 at-spi2-atk

yum install at-spi2-atk -y

如果出现以下错误

/app/aaa/puppeteer/chrome/linux-124.0.6367.78/chrome-linux64/chrome: error while loading shared libraries: libxkbcommon.so.0: cannot open shared object file: No such file or directory

安装 libxkbcommon

yum install libxkbcommon -y

安装字体

yum groupinstall "fonts" -y

需要注意的是,如果您替换了 yum 源,那么这些依赖会出现找不到的情况,使用 rpm -Uvh --force http://mirror.centos.org/centos-7/7.9.2009/os/x86_64/Packages/centos-release-7-9.2009.0.el7.centos.x86_64.rpm 恢复默认源
不建议替换默认源,会出现一些不必要的问题。


网站公告

今日签到

点亮在社区的每一天
去签到