Wie geht ArchLinux mit Abhängigkeitskonflikten um?

1573
Gary Chang

Im traditionellen Release-Modell werden alle Pakete in einem Release mit derselben Version des Compilers mit denselben Versionen von Bibliotheken kompiliert. Das Release-Team wählt sorgfältig Softwareversionen aus, die gut zusammenspielen, um Konflikte zu vermeiden.

In einer Distribution mit laufendem Release wie Gentoo bauen Sie jedes Paket anhand der in Ihrem System installierten Bibliotheksversionen selbst auf. Falls zwei Pakete von verschiedenen Versionen derselben Bibliothek abhängen, können Sie diese verschiedenen Versionen in verschiedenen Steckplätzen installieren. Sie haben also einen vernünftigen Mechanismus, um Konflikte zu vermeiden.

Kürzlich habe ich ArchLinux entdeckt, eine weitere Distribution mit einem Rolling-Release-Modell, die auf Binärpaketen basiert. Es scheint auch keine Slots zu unterstützen.

Jetzt bin ich verwirrt. Was passiert mit ArchLinux, wenn ich versuche, ein Paket zu installieren, das von einer anderen Bibliotheksversion als der installierten abhängig ist? Bin ich gezwungen, die Bibliothek aufzurüsten? Was passiert aber, wenn zwei Pakete von verschiedenen Versionen einer Bibliothek abhängen?

Ich habe mir verschiedene ArchLinux Wiki-Seiten auf Pacman angeschaut, aber keine Erklärung hinter den Kulissen gefunden.

6

1 Antwort auf die Frage

3
grawity

Abhängigkeiten mit einer expliziten Version sind in Arch selten; Die meisten Pakete erwarten lediglich die Installation der neuesten Version einer Abhängigkeit. (Der Benutzer darf keine selektiven Upgrades durchführen, sondern alle installierten Pakete auf der neuesten Version behalten .)

In seltenen Fällen, in denen zwei Versionen mit unterschiedlichen ABIs erforderlich sind, können die älteren Versionen als Pakete mit unterschiedlichen Namen bereitgestellt werden, z. B. libpng(neueste), libpng14(1.4), libpng12(1.2).