824778464的gravatar头像
824778464 2020-07-31 16:33:00
关于在内网CentOS7上使用puppeteer

项目描述

首先说明文本并不是代码分享,而是部署时的资源分享。

最近项目上线碰到的尴尬问题。项目中有将页面转换为PDF的需求,我使用了express+puppeteer,但是在部署时,客户服务器是一台纯内网服务器,不允许连接任何外网,即使是SSH远程,也是先连接的前置机再接入。

本以为在开发环境上把所有npm包都装好,打包后部署到服务器上使用。结果在服务器上一调用截图方法,出现下面错误:

Error: Failed to launch the browser process!
/home/centos/[......]/node_modules/puppeteer/.local-chromium/linux-722234/chrome-linux/chrome: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory

查询了一下原因,判定出现这个错误是由于基础操作系统缺少lib库导致,必须安装一些rpm包。尤其是puppeteer依赖的chromium,更是要安装很多lib库。在工程目录下运行ldd命令可以查看需要哪些包:

ldd node_modules/puppeteer/.local-chromium/linux-722234/chrome-linux/chrome |grep not

好在所有lib库都可以在pkgs上查询到(https://pkgs.org/),但问题是这些包安装时可能还依赖其他的包,需要反复的尝试安装、下载、上传过程,而且pkgs偶尔下载会0kb/s,虽然没有技术难度,但十分耗时。最终实际安装70多个包。

我把我的服务器上使用puppeteer时需要安装的所有rpm都整理了一下,希望可以帮助到遇到同样问题的人,节约部署的时间。

运行环境

Linux CentOS7 x86_64

项目技术

由于本文不分享代码,就不写技术了,会用rpm命令就可以了

依赖包文件

链接: https://pan.baidu.com/s/1LskOwxcYgAJq_70uSf7Qzw 提取码: tcn8

是否原创

原创

项目截图

关于在内网CentOS7上使用puppeteer

运行截图

关于在内网CentOS7上使用puppeteer

关于在内网CentOS7上使用puppeteer

注意事项

仅针对操作系统为CentOS7的x86_64版本。由于操作系统环境不同,安装这些后可能你还需要下载额外的包,但我这份文件至少包含90%以上的内容,可以节省大量时间。

也可以在互联网环境上通过yum --downloadonly下载,但是也不是一个命令搞定,还是要上传、安装、测试。用我下载好的这些至少节约4小时时间吧。

批量安装命令

rpm -Uvh --force --nodeps *rpm

安装过程有其他问题可以加最代码群

 


打赏

已有1人打赏

最代码官方的gravatar头像
最近浏览
ldc199375  LV10 2020年11月24日
amour1  LV11 2020年11月10日
安心猪  LV2 2020年9月30日
易拉罐  LV8 2020年9月30日
张晨曦  LV4 2020年9月29日
487948123  LV8 2020年9月14日
yao709476133  LV2 2020年9月10日
莉莉安  LV2 2020年9月10日
luzicheng  LV12 2020年9月7日
MrReady  LV14 2020年9月5日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友