问题:
你正在尝试在 Ubuntu 上运行 puppetteer,但当它开始运行 chrome 时,你面临以下问题:
/home/user/erp/node_modules/puppeteer/.local-chromium/linux-555668/chrome-linux/chrome: error while loading shared libraries: libX11-xcb.so.1: cannot open shared object file: No such file or directory
解决方案
使用以下命令安装缺少的包
在 Ubuntu 24.04 上:
install_puppetteer_deps_24.04.sh
sudo apt install -y liboss4-salsa-asound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc-s1 libgdk-pixbuf-2.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 libappindicator3-1 libnss3 lsb-release xdg-utils wget
在 Ubuntu 22.04 上:
install_puppetteer_deps_22.04.sh
sudo apt install -y gconf-service libasound2 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
在 OpenSUSE 15.5 上:
install_puppetteer_deps_opensuse_15.5.sh
sudo zypper install -y alsa-lib atk glibc cairo cups-libs dbus-1 expat fontconfig libgcc_s1 gdk-pixbuf glib2 gtk3 mozilla-nspr pango libstdc++6 libX11-6 libX11-xcb1 libxcb1 libXcomposite1 libXcursor1 libXdamage1 libXext6 libXfixes3 libXi6 libXrandr2 libXrender1 libXss1 libXtst6 ca-certificates liberation-fonts libappindicator3-1 mozilla-nss lsb-release xdg-utils wget
感谢 @coldner 在 puppetteer 问题跟踪器上组装所需的包。
如果你遇到 E: Unable to locate package 错误,运行 sudo apt-get update。
背景信息
如果你想了解更多关于此问题发生原因的信息,请继续阅读此处。
Puppetteer 本质上是一个最小的无头(请参见什么是无头程序或应用程序?)Chromium 实例,带有从 NodeJS 控制和监控它的附加 API。
即使 Puppetteer 实际上不显示 GUI,它使用的 Chromium 实例仍然需要一些库来绘制 GUI 并连接到 X11 服务器,即使 Puppetteer 中不使用它。其中一个库是 libxcb,它提供共享库 libX11-xcb.so.1。你可以通过在大多数基于 Debian 的系统上安装 libx11-xcb1 包来修复此问题。
然而,正如缺少共享库时经常发生的情况,一旦你安装了缺少的那个,之后会有至少另一个缺少的库。这就是为什么我们需要安装上面列出的大量库。
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow