Was bedeuten die Nummernsuffixe in dynamischen Linux-Bibliotheken?

7

Hier ist ein Beispiel:

~$ ls /lib/*.so* | head -n 10
/lib/ld-2.13.so
/lib/ld-Linux.so.2
/lib/libacl.so
/lib/libacl.so.1
/lib/libacl.so.1.1.0
/lib/libanl-2.13.so
/lib/libanl.so.1
/lib/libattr.so
/lib/libattr.so.1
/lib/libattr.so.1.1.0

Was bedeuten die Zahlen danach so, wie in der letzten Zeile 1.1.0?

Meine erste Vermutung war, dass es sich um Versionsnummern handelt, aber:

~$ pacman -Qo /lib/libattr.so*
/lib/libattr.so is owned by attr 2.4.46-1
/lib/libattr.so.1 is owned by attr 2.4.46-1
/lib/libattr.so.1.1.0 is owned by attr 2.4.46-1

Das 1.1.0scheint also keine Verbindung zu der Version der Bibliothek zu haben, von der berichtet wird, dass sie es ist 2.4.46.

houbysoft
quelle

Antworten:

7

Sie sind verschiedene Versionen der Bibliotheken. Unterschiedliche Anwendungen benötigen möglicherweise unterschiedliche Versionen, sodass jede Datei den Versionsnamen enthält. Auf diese Weise können alle gleichzeitig installiert werden. Sie werden feststellen, dass diejenigen ohne Versionsnummer tatsächlich über einen Symlink auf eine Version mit einer Versionsnummer verweisen, sodass Anwendungen, die keine bestimmten Versionen benötigen, einfach die Bibliothek ohne Versionsnummer anfordern und die neueste Version abrufen können Version auf dem System installiert.

Darth Android
quelle
Das war meine erste Vermutung, aber nach dem, was mein Paketmanager mir sagt, scheint es nicht die Antwort zu sein. Siehe Bearbeiten der Frage.
Houbysoft
5
Die Versionsnummern der Dateien werden wahrscheinlich nur erhöht, wenn sie die Binärkompatibilität beeinträchtigen, dh sie haben eine andere API für Programme. Dies ändert sich nicht mit Bugfixes, die immer noch dazu führen würden, dass die Paketversion erhöht wird. Aus diesem Grund nehmen Paketversionen schneller zu als die Bibliotheks-API-Versionen. Das ist sowieso meine Vermutung.
Darth Android
In der Tat sind die Versionsnummern des Pakets völlig unabhängig von der Bibliotheksversion. Sie können die Versionsnummern des Pakets erhöht haben, wodurch die Bibliotheksversion gleich bleibt, da die Binärkompatibilität erhalten bleibt ....
Kurt Pfeifle