Re: was Gentoo wirklich bringt (War: Re: Ideen zur Distri-Auswahl?)
Hoi, On Thu, Aug 28, 2003 at 03:34:00PM +0200, Florian Lohoff wrote:
Hmmm - ich habe parallelinstallation von mehreren "dbX" bei debian:
Nur auf den ersten Blick. Genaugenommen hast Du zwei verschiedene Pakete installiert: db3 und db4. Das das zufällig zwei verschiedene Versionen derselben Library sind weiss Debians Paketmanager nicht, weil die Versionsnummer in den Namen gerutscht ist, wo sie niemals hingehörte. Die Namensgebung ist keine "Lösung" sondern ein Workaround, weil Paketmanager eben bisher nicht mit der Doppelinstallation zweier verschiedener Versionen gleicher Pakete klarkamen. Sowas macht durchaus einen Unterschied, z.B. bei den dependencies. Wenn mein Paket zum Bauen eine Library braucht, von der es v1, v2 und v3 gibt, wobei das Programm mindestens v2 braucht aber mit v3 auch läuft. Und sagen wir mal, v3 ist gerade erst erschienen, die gabs zur Zeit als das Paket rauskam noch gar nicht. Wenn dann die Versionsnummer mit im Namen steht kann eine Angabe ala "abc >= 2.0" nicht aufgelöst werden, denn das Paket heisst ja nun "abc3". Das Problem gibts natürlich schon lange und daher werden inzwischen zumindest von RPM Dinge wie "abc1 >= 1.022 || abc2 >= 2.0" unterstützt, was portage natürlich auch kann, wenn es sein muss. Aber schön ist das nicht, würde ich meinen. Fazit ist für mich: Debian und andere Binärdistributionen können das nur, weil sich jemand explizit hingesetzt und den Konflikt aufgelöst hat. Gentoo kann das einfach so. Gibt auf Dauer weniger Stress.
Das sobald ich paket B installieren moechte er lib L version 2 compiled installiert und dann die dependency von A aufhebt durch neucompilieren von A und installieren von A/Neu und damit aufheben von dependency auf lib L version 1 soname 1.
Das kann Gentoo unter einer Bedingung: Wenn das Paket um das es geht bei Vorliegen zweier verschiedener Versionen die Aktuellere zum Kompilieren auswählt. Das tun die meisten, weil der Linker ja so funktioniert. Automatisch geschieht das nicht, was ich eher für'n Feature halten würde. Bei 'nem remerge wirds dann aber ausgeführt.
Debian kann es genauso. Parallelinstallationen von librarys gehen nur dann wenn sich der soname aendert - Der eigentliche name bzw version ist uninteressant weil damit der dynamic linker nichts anzufangen weiss. Leider aendert sich aber der soname nur bei API wechseln (Sollte zumindest).
Wieso leider? Wenn das API nicht gewechselt wird machts doch nix. Die Version ist durchaus nicht uninteressant. Bei einer Library mit "libabc.so.2.4.1" steht im ELF-Header, das "libabc.so.2" gebraucht wird und das löst der Linker dann auch so auf, egal ob der soname nun "abc" oder "abc-2" ist. Das jetzt viele Libraries ihre Version auch gleich mit in den Namen reinkodieren (so ala gtk-1.so.ccc und gtk-2.so.ddd) ist doch erst aufgekommen, weil diverse Buildwerkzeuge sonst nicht klarkamen, nicht weil die Entwickler das schon immer gewollt hätten. Oder sehe ich da was falsch? bye -- http://fargonauten.de/ingo
Teilnehmer (1)
-
ingo@fargonauten.de