You need to enable JavaScript to run this app. AWS EC2部署Node.js Puppeteer报libgbm.so.1共享库加载错误
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2部署Node.js Puppeteer报libgbm.so.1共享库加载错误

问题根源

该报错产生的核心原因是Puppeteer内置捆绑的Chromium浏览器运行所需的Linux系统依赖不全。MacOS本地环境默认预装了Chromium需要的图形类依赖包,但AWS EC2的Linux实例默认不会安装这类非服务端必要的组件,你缺失的libgbm.so.1是mesa图形库的组件,属于Chromium运行的强制依赖。

修复步骤

根据你EC2使用的操作系统类型,执行对应命令安装依赖即可:

  • Debian/Ubuntu/Amazon Linux 2023 系统
    1. 首先更新包索引:sudo apt update
    2. 一键安装Chromium全量依赖:
      sudo apt install -y libgbm-dev libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
  • Amazon Linux 2 系统
    执行以下命令安装依赖:
    sudo amazon-linux-extras install epel -y
    sudo yum install -y mesa-libGBM libXcomposite libXcursor libXdamage libXext libXi libXtst libXrandr alsa-lib atk at-spi2-atk cairo cups-libs dbus-libs expat fontconfig freetype glibc gdk-pixbuf2 gtk3 libX11 libXcb libXfixes libXrender libXScrnSaver nspr nss pango libappindicator-gtk3 liberation-fonts
    
  • 可选优化方案
    如果你不想每次部署都安装大量系统依赖,可以直接在EC2上先预装Chromium,再在Puppeteer启动配置中指定使用系统自带的Chromium,避免Puppeteer自动下载的二进制包依赖缺失,配置示例:
    const browser = await puppeteer.launch({
      // 系统Chromium的安装路径,不同发行版路径可能有差异,可以用which chromium-browser查询
      executablePath: '/usr/bin/chromium-browser',
      // 无GUI的服务器环境必须添加这两个启动参数
      args: ['--no-sandbox', '--disable-setuid-sandbox']
    });
    
验证方法

依赖安装完成后重启Node.js服务,触发抓取路由即可验证是否修复。如果仍然有同类依赖缺失报错,可以执行ldd 你的Puppeteer下载的Chrome二进制文件路径 | grep not命令快速定位所有缺失的依赖,对应安装对应包即可。

内容的提问来源于stack exchange,提问作者ImFarhad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 21:06:11