Problem:
Du versuchst, puppetteer auf Ubuntu auszuführen, aber wenn es versucht, Chrome zu starten, trittst du auf folgendes Problem:
/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
Lösung
Installiere die fehlenden Pakete mit
Auf 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
Auf 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
Auf 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
Credits an @coldner im Puppeteer-Issue-Tracker für das Zusammentragen der benötigten Pakete.
Wenn du E: Unable to locate package-Fehler erhältst, führe sudo apt-get update aus.
Wenn du mehr darüber wissen möchtest, warum dieses Problem auftritt, lies hier weiter.
Puppeteer ist im Wesentlichen eine minimale headless (siehe What is a headless program or application?) Chromium-Instanz mit einer zusätzlichen API zum Steuern und Überwachen aus NodeJS.
Obwohl Puppeteer keine GUI anzeigt, benötigt die Chromium-Instanz, die es verwendet, dennoch einige der Bibliotheken zum Zeichnen einer GUI und zum Verbinden mit dem X11-Server, auch wenn dieser in Puppeteer nicht verwendet wird. Eine dieser Bibliotheken ist libxcb, welche die Shared Library libX11-xcb.so.1 bereitstellt. Du kannst dies beheben, indem du das Paket libx11-xcb1 auf den meisten Debian-basierten Systemen installierst.
Wie jedoch so oft bei fehlenden Shared Libraries: Sobald du die eine installierst, die fehlt, fehlt danach mindestens eine weitere Bibliothek. Deshalb müssen wir die große Anzahl von oben aufgelisteten Bibliotheken installieren.
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow