was Gentoo wirklich bringt (War: Re: Ideen zur Distri-Auswahl?)
ingo at fargonauten.de
ingo at fargonauten.de
Thu Aug 28 16:31:05 CEST 2003
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
More information about the Linux
mailing list