Freitag, 25. Mai 2012, 03:25

Du bist nicht angemeldet.



bederf

hat hier 2. Wohnsitz.

  • »bederf« ist der Autor dieses Themas

Beiträge: 144

Ubuntu: 8.10

Kernel: 2.6.27-9-generic

Architektur: 32-bit

  • Private Nachricht senden

1

Samstag, 14. Februar 2009, 19:53

Wie die Version einer Biblothek ermitteln?

Hallo,

sagt mal, wie ermittle ich eigentlich auf der Kommandozeile die Version einer installierten Bibliothek? Zum Beispiel der libgnome-keyring0?
Gruß,
Manfred

stefan315

hat hier 2. Wohnsitz.

Beiträge: 423

Ubuntu: ---

Kernel: 2.6.39-ARCH

Desktop: KDE

Architektur: ---

  • Private Nachricht senden

2

Samstag, 14. Februar 2009, 20:13

Quellcode

1
ls -l /usr/lib/libgnome-keyring.so.0


Die Bibliotheken besitzen nach dem *.so die Version. Damit aber die Programme auch bei unterschiedlicher Version die Bibliothek finden (solange sie kompatibel sind), wird ein Symlink mit dem Namen der Bibliothek angelegt. Dieser Symlink verweist dann auf die zu verwendende Version der Bibliothek. Allerdings können Programme auch eine ältere Version benutzen, wenn sie mit dem kompletten Namen der Bibliothek gelinkt worden. Das sollte aber in der Regel nicht der Fall sein ;)

Siehe hier auch Wikipedia

Gruß,
Stefan

Easyy-S

Boardgrafiker

Beiträge: 2 986

Ubuntu: 12.04

Kernel: generic

Desktop: GNOME Shell

Architektur: 64-bit

Danksagungen: 3 / 1

  • Private Nachricht senden

3

Samstag, 14. Februar 2009, 22:12

Ich würde den Weg gehen, mir die Versionsnummer des entsprechenden Paketes anzeigen zu lassen.
Vorteil hierbei, daß ich nicht den genauen Namen wissen muss.

An dem Beispiel der libgnome sähe das dann z.B. so aus:

Quellcode

1
dpkg -l | grep libgnome

Ob die Datei dann libgnome, libgnome-keyring oder libgnome-keyring.so heisst, brauche ich nicht zu wissen.
Easyy-S

Mein pubkey

Dein eigener UbuntuFreunde-Avatar: hier - Dein UbuntuFreunde-Banner: hier

stefan315

hat hier 2. Wohnsitz.

Beiträge: 423

Ubuntu: ---

Kernel: 2.6.39-ARCH

Desktop: KDE

Architektur: ---

  • Private Nachricht senden

4

Samstag, 14. Februar 2009, 22:26

Das sind aber zwei unterschiedliche Versionen.

Es kommt darauf an, welche Version man wissen möchte. :)

Es gibt die Version der Software und die API/ABI-Version.
Meins sollte die API/ABI-Version anzeigen und deine die der "Software".

Nach genauerem Nachdenken, wird bederf wahrscheinlich deine Lösung wissen wollen ;)

bederf

hat hier 2. Wohnsitz.

  • »bederf« ist der Autor dieses Themas

Beiträge: 144

Ubuntu: 8.10

Kernel: 2.6.27-9-generic

Architektur: 32-bit

  • Private Nachricht senden

5

Sonntag, 15. Februar 2009, 11:29

Moin und danke :)

Nee, mir geht es tatsächlich um die API-Version.
In diesem Fall geht es darum, dass ich einen Fehler zu seahorse gemeldet habe und der Gnome-Entwickler wissen will, welche Version der lib installiert ist. Da wird er mit der Ubuntu-Paket-Versionsnummer wohl nicht so viel anfangen können.

Quellcode

1
2
haegar@pclau:~$ ls -l /usr/lib/libgnome-keyring.so.0
lrwxrwxrwx 1 root root 25 2008-12-05 22:53 /usr/lib/libgnome-keyring.so.0 -> libgnome-keyring.so.0.1.1

Dann wird die Versionsnummer, die hier von Interesse ist, wohl 0.1.1 sein.

Mein Problem ist, dass er mich gebeten hat, eine aktuelle Version von seahorse aus svn abzurufen und zu testen, ob der Fehler mit der auch auftritt. Nach dem Auflösen einer Vielzahl von Abhängigkeiten bleibt autogen jetzt mit der Meldung hängen, dass die libgnom-keyring nicht installiert ist. Ist sie zwar, aber offenbar in einer für den trunk von seahorse zu alten Version. Nun werde ich wohl die lib selber kompilieren und einbinden müssen ...

Grüße,
Manfred