由于需要使用到了 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
恢复默认源
不建议替换默认源,会出现一些不必要的问题。