Behebung von Puppeteer-Fehler while loading shared libraries: libX11-xcb.so.1: cannot open shared object file: No such file or directory

English Deutsch

Problem:

Du versuchst, puppetteer auf Ubuntu auszuführen, aber wenn es versucht, Chrome zu starten, trittst du auf folgendes Problem:

error_message.txt
/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.

Hintergrundinformationen

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.


Check out similar posts by category: Linux, Puppeteer