Beim Versuch, mein System zu aktualisieren, erhalte ich die Fehlermeldung: Die Vorbereitung der Transaktion ist fehlgeschlagen (Abhängigkeiten konnten nicht erfüllt werden).
Das ist, was ich bekomme:
~> sudo pacman -Syu
:: Synchronising package databases...
gremlins is up to date
system is up to date
world is up to date
galaxy-gremlins is up to date
galaxy is up to date
lib32 is up to date
extra is up to date
community is up to date
multilib is up to date
:: Starting full system upgrade...
:: Replace libcanberra-pulse with gremlins/libcanberra? [Y/n] n
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing expat (2.4.1-1) breaks dependency 'expat=2.3.0' required by lib32-expat
:: installing libcap (2.50-1) breaks dependency 'libcap=2.49' required by lib32-libcap
:: installing libelf (0.185-1) breaks dependency 'libelf=0.184' required by lib32-libelf
:: installing libcanberra (0.30+2+gc0620e4-4) breaks dependency 'libcanberra=0.30+2+gc0620e4-3' required by libcanberra-pulse
Ich versuche dann das Paket zu entfernen expat
, erhalte jedoch die Meldung: „Achtung: Es befinden sich verbotene Pakete in der Entfernungsliste!“
Ich habe mir das angesehenWebsite, aber hier können sie das problematische Paket deinstallieren, was ich nicht kann, da expat
es Teil des Kerns ist.
Was soll ich an diesem Punkt tun?
Antwort1
Pakete im lib32
Repository, bei denen es sich um 32-Bit-Versionen verschiedener Bibliotheken usw. handelt, sind von ihren 64-Bit-Gegenstücken derselben Version abhängig.
Sie haben die instabilen Test-Repositorys wie gremlins
und galaxy-gremlins
, die neuere Versionen von Paketen wie bereitstellen expat
. Sie haben jedoch kein lib32-gremlins
Repository und erhalten daher nicht dieselben Updates für die 32-Bit-Gegenstücke dieser Pakete, d. h. Sie können bei den alten (stabilen) Paketen bleiben. Und da die stabilen 32-Bit-Pakete lib32-expat
von den 64-Bit-Gegenstücken der stabilen Repositorys abhängen, besteht ein Konflikt, da Sie entweder Ihr System auf einem älteren System belassen (um die Abhängigkeiten der alten 32-Bit-Pakete zu erfüllen) oder die neueren 64-Bit-Pakete installieren können (wodurch die Abhängigkeiten der 32-Bit-Pakete aufgehoben werden, was nur durch Deinstallation möglich ist).
Alternativ können Sie lib32-gremlins
das Repository aktivieren, das 32-Bit-Versionen von Paketen in den 64-Bit-Test-Repositorys bereitstellt, oder alle Test-Repositorys deaktivieren – mit jeder dieser beiden Aktionen werden Ihre 64-Bit- und 32-Bit-Repositorys synchronisiert und Abhängigkeiten können mit den neuesten verfügbaren Paketen gelöst werden.