centos8安装puppeteer
背景
我计划使用puppeteer爬点html数据,结果windows11上没问题 但在我的服务器centos8上确报错。
[root@104 auto-task]# npm run start
> auto-task@1.0.0 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://rpmfind.net/linux/fedora/linux/development/rawhide/Everything/x86_64/os/Packages/i/ipa-gothic-fonts-003.03-26.fc38.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
> auto-task@1.0.0 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了!
其他问题
装完后 打开shell 可能会提示如下错误,但不影响使用
manpath: can't set the locale; make sure $LC_* and $LANG are correct
这是语言和区域的兼容问题,如果觉得影响美观,可以执行如下代码即可。
echo "LC_ALL=en_US.UTF-8" >> /etc/environment
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
# locale-gen en_US.UTF-8
centos8安装puppeteer的更多相关文章
- centos8 安装vmware需要的内核头文件 kernel-headers.
centos8 安装vmware需要的内核头文件 kernel-headers. uname -r (查看内核版本) rpm -qa kernel-headers (查看kernel-headers版 ...
- Centos8安装Docker提示:package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
Centos8安装Docker提示:package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but ...
- centos8安装fastdfs6.06集群方式三之:storage的安装/配置/运行
一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...
- centos8安装fastdfs6.06集群方式二之:tracker的安装/配置/运行
一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...
- centos8安装fastdfs6.06集群方式一之:软件下载与安装
一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...
- CentOS8 安装MySQL5.7
CentOS_8 安装MySQL5.7 1.在安装之前,如果你的系统曾经安装过Mariadb,请先卸载:yum remove mariadb*2.安装依赖 yum install -y epel-re ...
- CentOS8安装VirtualBox,并创建CentOS虚拟机
安装VirtualBox 执行以下命令并启用VirtualBox和EPEL包仓库 [root@localhost~] dnf config-manager --add-repo=https://dow ...
- 在MacOS安装puppeteer
安装node:升级:npm i npm 安装yarn:需要注意先把yarn的流程跑完,特别是package.json 安装puppeteer:yarn add puppeteer 安装完成以后需要重启 ...
- CentOS8安装Geant4笔记(三):Geant4介绍、编译、安装支持Qt5界面并运行exampleB1例程显示Qt界面
前言 上一篇,安装了Qt5环境. 本篇在服务器CentOs8.2上安装geant4软件,geant4使用Qt5来显示. GEANT4 介绍 Geant4 是一个用于模拟粒子穿过物质的工具 ...
- Centos8安装nvidia驱动
Centos8安装nvidia驱动 1. 查看显卡型号 lspci | grep-i nvidia 或者 lspci -vnn | grep VGA 2. 前往nvidia官网下载对应驱动 NVIDI ...
随机推荐
- Nodejs与管道和信号
Nodejs与管道 Linux的其中一个设计哲学就是小而精,一个程序只做一件事情,然后通过管道将多个程序连接起来完成复杂的任务. 比如如下的命令: ps -ef | grep node cat aaa ...
- BotSharp + MCP 三步实现智能体开发
1. 简介 1.1 什么是MCP Model Context Protocol(MCP)模型上下文协议是一种标准化协议,它让大模型能够更容易地和外部的数据.工具连接起来.你可以把MCP想象成一个通用的 ...
- 使用 AutoGen Studio 打造你的私有团队
AI Agent 无疑是今年最火爆的概念,从科技巨头的战略布局到创业公司的创新产品,AI 智能体正在重塑我们与机器交互的方式.无论是自动化任务.个性化服务,还是复杂问题的协同解决,AI Agent 都 ...
- cmd窗口中执行shell文件的方式
使用cmd打开窗口后,使用powershell切入ps状态,然后使用sh命令即可执行shell文件,切入ps状态所在的目录为Administrator目录 bat设置Path变量 设置好sh.exe的 ...
- JDK1.8的ConcurrentHashMap的put方法源码
一.JDK1.8的ConcurrentHashMap的put方法源码 ConcurrentHashMap 是 Java 并发包(java.util.concurrent)中的一个高性能线程安全哈希表实 ...
- JVM 的内存区域是如何划分的?
JVM 的内存区域划分 JVM 在运行时会将内存划分为多个区域,用于管理程序运行时的不同类型数据.以下是 JVM 内存的主要划分: 1. 方法区(Method Area) 定义: 方法区是运行时数据区 ...
- Maven版本号管理规范:为何父POM是统一依赖版本的最佳实践?
结论先行 在Maven多模块项目中,依赖的版本号应集中定义在父POM的<dependencyManagement>中,子模块通过继承父POM来引用版本号,通常无需在子POM中重复声明.这能 ...
- 工具 | ApplicationScanner
0x00 简介 ApplicationScanner是一款APP客户端安全项检测工具. 下载地址: ApplicationScanner下载: ApplicationScanner下载 0x01 功能 ...
- 【笔记】Excel 2021|重要篇|(一)VBA精准控制选择范围、VBA提高运行速度并降低运行时的内存消耗
最近总是遇到只有Excel表.没有数据库的情况,不太可能让别人搭Python环境来建数据库,但对常用数据库的使用也不太熟悉,也没买服务器不能让别人远程操控.再加上Python操作Excel的效率令 ...
- 操作系统综合题之“采用时间片轮转调度算法(Round-Robin,RR)执行,分时系统中的进程可能出现的状态变化”
一.问题:某分时系统中的进程可能出现下图所示的状态变化,请回答下列问题: 1.根据图示,您认为该系统采用的是什么进程调度策略? 2.把图中所示的每一个状态变化的原因填在下表相应位置. 变化 原因 1 ...