首页 > 系统相关 >centos8安装puppeteer

centos8安装puppeteer

时间:2023-07-16 15:11:40浏览次数:46  
标签:node x86 chrome fonts puppeteer 64 x11 安装 centos8

背景

我计划使用puppeteer爬点html数据,结果windows11上没问题 但在我的服务器centos8上确报错。

[root@104 auto-task]# npm run start
> [email protected] start
> node src/main.js
启动成功:http://localhost:3000
  Error: Failed to launch the browser process!
  /root/.cache/puppeteer/chrome/linux-114.0.5735.133/chrome-linux64/chrome: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory
  
  TROUBLESHOOTING: https://pptr.dev/troubleshooting
      at Interface.onClose (file:///home/auto-task/node_modules/@puppeteer/browsers/lib/esm/launch.js:250:24)
      at Interface.emit (node:events:525:35)
      at Interface.close (node:internal/readline/interface:533:10)
      at Socket.onend (node:internal/readline/interface:259:10)
      at Socket.emit (node:events:525:35)
      at endReadableNT (node:internal/streams/readable:1359:12)
      at process.processTicksAndRejections (node:internal/process/task_queues:82:21)

原因分析

网上查找资料得知,本来就是不可能能一凡风顺,官方给出了要想成功使用的必备依赖包

安装必备依赖

yum install -y pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc

可能出现的问题

无法安装依赖ipa-gothic-fonts
但是我执行以上的安装这些依赖包命令,结果却报错,导致安装依赖失败。
如果你没有下边这个报错,请忽略此环节。

Failed to set locale, defaulting to C
Last metadata expiration check: 0:39:16 ago on Sun Jul 16 01:42:31 2023.
No match for argument: ipa-gothic-fonts
Error: Unable to find a match

还好英语我的英语略懂,根据提示可得知 依赖包 ipa-gothic-fonts找不到。 推测作者可能撤包,也可能是源的问题。
办法简单,通过查找资料获取ipa-gothic-fonts安装包,手动安装即可。

curl -O https://pkgs.dyn.su/el8/base/x86_64/ipa-gothic-fonts-003.03-15.el8.noarch.rpm
yum install -y ipa-gothic-fonts-003.03-15.el8.noarch.rpm

然后再通过命令安装剩余的依赖即可

yum install -y pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc

升级nss依赖

根据官方要求 升级nss依赖

yum update nss -y

可能出现的问题

执行以上我这里报错 提示我服务器上压根就没有nss这个包,

[root@104 ~]# yum update nss -y
Last metadata expiration check: 0:17:42 ago on Sun 16 Jul 2023 12:49:13 AM EDT.
Package nss available, but not installed.
No match for argument: nss
Error: No packages marked for upgrade.

那更好办了,直接全新安装即可

yum install nss -y

还是不能运行?

是的,按照官方要求,安装了上诉的这些必备依赖项之后,还是提示报错。这是怎么回事?

[root@104 auto-task]# npm run start
> [email protected] start
> nodesrc/main.js
启动成功:http://localhost:3000
  Error: Failed to launch the browser process!
  /root/.cache/puppeteer/chrome/linux-114.0.5735.133/chrome-linux64/chrome: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory
  
  TROUBLESHOOTING: https://pptr.dev/troubleshooting
      at Interface.onClose (file:///home/auto-task/node_modules/@puppeteer/browsers/lib/esm/launch.js:250:24)
      at Interface.emit (node:events:525:35)
      at Interface.close (node:internal/readline/interface:533:10)
      at Socket.onend (node:internal/readline/interface:259:10)
      at Socket.emit (node:events:525:35)
      at endReadableNT (node:internal/streams/readable:1359:12)
      at process.processTicksAndRejections (node:internal/process/task_queues:82:21)

根据分析 应该(chrome运行时的)依赖仍然缺少。我们去验证下

cd /root/.cache/puppeteer/chrome/linux-114.0.5735.133/chrome-linux64
ldd chrome | grep not

下边可以看到缺少哪些依赖 导致chrome启动失败

[root@104 chrome-linux64]# ldd chrome | grep not
        libdrm.so.2 => not found
        libgbm.so.1 => not found

那我们安装这些缺少的依赖即可

yum install libdrm libgbm libxshmfence -y

最后再次执行上边的命令看一次是否缺少依赖,如果不出意外,全部依赖安装成功!

结语

至此,再试试你的程序 是不是可以正常运行puppeteer了!

标签:node,x86,chrome,fonts,puppeteer,64,x11,安装,centos8
From: https://www.cnblogs.com/dingshaohua/p/17557843.html

相关文章

  • Oracle 12c for Linux安装手册
    Oracle安装前配置关闭防火墙及selinux、修改主机名和host文件vi/etc/selinux/configselinux=disabledserviceiptablesstopchkconfig iptables off/etc/sysconfig下面的network文件HOSTNAME=hostname在/etc/hosts文件最后添加x.x.x.xhostname安装依赖包yum-......
  • mysql安装
    安装方式选择:二进制、源码、yum安装(生产选择二进制安装)参考链接:https://www.cnblogs.com/yyxianren/p/11319544.html1.卸载默认安装的mariadb:  yumremovemariadb*-y2.添加mysql用户:  useradd-s/sbin/nologin-Mmysql3.解压tar文件并移动到指定目录,并赋权: ......
  • 安装OpenMediaVault服务和Docker应用
    安装SSH服务安装ssh服务sudoaptinstallssh配置ssh:sudovim/etc/ssh/sshd_config在sshd_config文件中找到PasswordAuthentication字段,将其设置为yes:PasswordAuthenticationyes如果需要用root用户远程登录,需要添加一句:PermitRootLoginyes#允许root用户登录启动服务......
  • WSL环境中安装过Java并配置VSCode
    WSL环境已经配置好,现在开始在Ubuntu里面安装Java!一下载tar包方式手动安装1.1下载地址:https://www.oracle.com/java/technologies/downloads/1.2在上面的地址中选择合适的版本进行下载,然后将下载的安装包拷贝到wsl系统所在目录,然后进入Ubuntu,找到拷贝的安装包,比如我的wsl迁移......
  • 安装docker
    安装docker通过curl命令安装docker,系统会自动安装完成。[root@localhostdocker]#curl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun查看docker版本[root@localhostdocker]#docker-vDockerversion24.0.2,buildcb74dfc ......
  • centos7中安装最新版本的make
     001、官网下载: https://ftp.gnu.org/gnu/make/ 002、查看当前的make版本及系统版本a、make版本[root@PC1~]#make--versionGNUMake3.82Builtforx86_64-redhat-linux-gnuCopyright(C)2010FreeSoftwareFoundation,Inc.LicenseGPLv3+:GNUGPLversion......
  • vsphere上redhat7.5系统安装
    Redhat7.5系统安装参考需求:安装redhat7.5,给2CPU,40G磁盘空间,4G内存,IP地址为5.19、5.20,网关5.1 步骤如下:1.选择需要将虚拟机安装的主机选中IP-->单击文件-->新建-->新建虚拟机 2.选择配置类型选择典型模式即可 3.虚拟机名称虚拟机一般命名规则:用......
  • Python教程(4)——Python开发工具PyCharm的下载与安装
    PyCharm是一种专业的Python集成开发环境(IDE),由JetBrains公司开发和维护。它提供了丰富的功能和工具,帮助开发人员更高效地编写、调试和测试Python代码。如果是一些大型Python项目强烈推荐用这个来开发。今天我们来介绍一下PyCharm的下载与安装。PyCharm的下与载安装首先需要到PyCh......
  • vscode通过命令安装code到path
    vscode安装时候,可以勾选安装code命令到path,但是这个默认没选中,经常忘记勾选补救方案有两种1.自己去配置path环境变量2.通过vscode的命令直接安装ctrl+shift+p,输入install,出现的安装到path这个就是了 ......
  • docker 安装hive
    Docker安装Hive在大数据领域,Hive是一个构建在Hadoop上的数据仓库基础设施。它提供了类似于SQL的查询语言HiveQL,可以将查询转化为MapReduce任务来处理大规模的分布式数据集。为了方便部署和管理Hive,我们可以使用Docker进行安装。步骤以下是在Docker中安装和配置H......