项目描述
首先说明文本并不是代码分享,而是部署时的资源分享。
最近项目上线碰到的尴尬问题。项目中有将页面转换为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的x86_64版本。由于操作系统环境不同,安装这些后可能你还需要下载额外的包,但我这份文件至少包含90%以上的内容,可以节省大量时间。
也可以在互联网环境上通过yum --downloadonly下载,但是也不是一个命令搞定,还是要上传、安装、测试。用我下载好的这些至少节约4小时时间吧。
批量安装命令
rpm -Uvh --force --nodeps *rpm
安装过程有其他问题可以加最代码群