Eine der größten Stärken von Arch Linux ist die Aktualität der Software. So ist zum Beispiel GNOME 3.12 (hier die Release Notes) nur wenige Tage alt und schon heute trudelt die neue GNOME-Version in den Paketquellen von Arch ein. Unter Ubuntu müsste man jetzt mit PPAs hantieren oder eben warten bis Ubuntu 14.10 die nächste GNOME-Version mit ausliefert. Die Aktualität und Flexibilität von Arch Linux hat jedoch auch ihren Preis: Ab und an kommt es in der Paketverwaltung zu Konflikten, erst recht wenn man Pakete aus dem Arch User Repository (kurz AUR) installiert. Doch diese Problemchen lassen sich im Normalfall recht leicht ausbügeln.

Bei mir hing das GNOME-Update auf zwei Rechnern fest, die Installation brach mit unterschiedlichen Dateikonflikten ab. Von daher möchte ich diese Situation beispielhaft für „Instabilitäten“ in Arch Linux nehmen, nach denen hier im Blog immer wieder mal gefragt wurde. Solche Konflikte entstehen dann, wenn Pakete Dateien ins Dateisystem schieben, wo andere Pakete gleichnamige Dateien ablegen möchten. Dies kam bei mir im Rahmen des GNOME-Updates auf zwei Rechnern vor, auf denen ich zuvor Pakete aus dem AUR installiert hatte.
$ sudo pacman -Syu
...
(162/162) Überprüfe Paket-Integrität [######################] 100%
(162/162) Lade Paket-Dateien [######################] 100%
(162/162) Prüfe auf Dateikonflikte [######################] 100%
Fehler: Konnte den Vorgang nicht durchführen (In Konflikt stehende Dateien)
gtksourceview3: /usr/share/gtksourceview-3.0/styles/solarized-dark.xml existiert im Dateisystem
gtksourceview3: /usr/share/gtksourceview-3.0/styles/solarized-light.xml existiert im Dateisystem
Fehler sind aufgetreten, keine Pakete wurden aktualisiert.
Die Lösung dieses Problem ist nicht schwer, man muss sich nur ein wenig in den Paketmanager von Arch einarbeiten. Im ersten Schritt gilt es herauszufinden welches Paket die Datei /usr/share/gtksourceview-3.0/styles/solarized-dark.xml im System abgelegt hat und die Installation des überarbeiteten Pakets gtksourceview3 verhindert. Dazu kann man pacman mit der Option -Qo und dem vollen Pfad der problematischen Datei aufrufen, unter Debian/Ubuntu entspräche der Befehl dem Aufruf dpkg -S.
$ pacman -Qo /usr/share/gtksourceview-3.0/styles/solarized-light.xml
/usr/share/gtksourceview-3.0/styles/solarized-light.xml ist in gedit-solarized-git 20130705-1 enthalten
Der Schuldige ist somit schnell gefunden, gedit-solarized-git aus dem AUR belegt den Platz, den nun auch gtksourceview3 einnehmen möchte. Um das Problem zu beheben wirft man am besten das unwichtigere Paket — in dem Fall also gedit-solarized-git — vom Rechner. Konflikte mit Paketen aus den Main-Quellen sollte es eigentlich nie geben, da hier auf eine Abstimmung der Speicherorte geachtet wird, ansonsten wäre dies ein klarer Fehler im Paket und müsste von Arch behoben werden.
$ sudo pacman -Rc gedit-solarized-git
Nach der Deinstallation von gedit-solarized-git lief das große GNOME-Update bei mir jeweils reibungslos durch, sollten weitere solche Konflikte auftauchen, muss man sie eben auf dem selben Weg lösen. Schwierig ist das meist nicht, und auch der Zeitaufwand hält sich in Grenzen. Mit Ubuntu und den GNOME-PPAs hatte ich in der Vergangenheit deutlich mehr Ärger, als beim Update von GNOME 3.10 auf GNOME 3.12 in Arch.






Schreibe einen Kommentar