Welche Bibliotheken müssen vorhanden sein, um Fehler beim Kompilieren des Muffin-Window-Managers zu vermeiden?
Um den Muffin-Window-Manager (den Standard-Window-Manager von Linux Mint / Cinnamon) erfolgreich aus dem Quellcode zu kompilieren, benötigst du eine Reihe von Entwicklungsbibliotheken (Development Headers).
Da Muffin ein Fork von GNOMEs Mutter ist und eng mit dem Cinnamon-Ökosystem verknüpft ist, sind die Abhängigkeiten recht umfangreich.
Hier ist eine Aufschlüsselung der benötigten Komponenten für eine Debian/Ubuntu-basierte Distribution (wie Linux Mint):
1. Der einfachste Weg (automatisch)
Wenn du auf einem System arbeitest, das Muffin bereits in den Repositories hat, kannst du alle Abhängigkeiten mit einem Befehl installieren:
sudo apt build-dep muffin
2. Manuelle Liste der wichtigsten Bibliotheken
Falls du die Abhängigkeiten manuell installieren möchtest oder auf einer anderen Distribution arbeitest, benötigst du folgende Pakete (Namen für Debian/Ubuntu):
Build-System Tools:
meson(Muffin nutzt heute fast ausschließlich Meson)ninja-buildpkg-configgccoderclang
Kern-Bibliotheken:
libglib2.0-dev(GObject, GIO)libgtk-3-dev(GTK+ 3)libgirepository1.0-dev(GObject Introspection)libcinnamon-desktop-dev(Wichtig: Muffin benötigt die Header von Cinnamon-Desktop)libjson-glib-devlibcanberra-dev(für Audio-Events)
Grafik & Windowing (X11 & Wayland):
libx11-devlibxcomposite-devlibxdamage-devlibxext-devlibxfixes-devlibxi-devlibxrandr-devlibxrender-devlibxcursor-devlibxtst-devlibxkbfile-devlibxkbcommon-x11-devlibwayland-dev(auch wenn du nur X11 nutzt, sind die Header oft nötig)libinput-devlibudev-devlibgbm-devlibdrm-dev
Clutter & Cogl (Cinnamon-Versionen): Muffin nutzt eigene Versionen bzw. spezifische Forks von Clutter und Cogl. Du musst sicherstellen, dass die Cinnamon-Versionen dieser Bibliotheken installiert sind:
libcogl-dev(bzw.libcogl-path-dev/libcogl-pango-dev)libclutter-1.0-dev
3. Kompilier-Vorgang (Beispiel)
Wenn die Bibliotheken installiert sind, sieht der typische Ablauf so aus:
git clone https://github.com/linuxmint/muffin.git
cd muffin
meson setup builddir --prefix=/usr
ninja -C builddir
sudo ninja -C builddir install
Häufige Fehlerursachen:
- Version-Mismatch: Muffin benötigt oft eine sehr aktuelle Version von
cinnamon-desktop. Wenn du Muffin aus dem Git-Master kompilierst, musst du oft auchcinnamon-desktopaus dem Git-Master kompilieren und installieren. - Fehlende Pfade: Wenn du Bibliotheken in
/usr/localinstallierst, findetpkg-configsie manchmal nicht. Nutzeexport PKG_CONFIG_PATH=/usr/local/lib/pkgconfig. - Zenity: Zur Laufzeit (nicht unbedingt zum Kompilieren, aber für Fehlermeldungen) wird oft
zenityvorausgesetzt.
Tipp: Schau in die Datei debian/control im Muffin-Quellcode-Ordner. Dort sind unter Build-Depends alle exakten Paketnamen aufgelistet, die das Linux-Mint-Team für den Bau verwendet.