GNU/Linux >> Tutoriels Linux >  >> Linux

Comment faire le versioning d'une bibliothèque partagée sous Linux ?

La version courte est que vous faites cela via le soname de la bibliothèque. Lisez le chapitre 3 sur http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html ainsi que le chapitre 3.3 ABI Versioning sur http://www.akkadia.org/drepper/dsohowto.pdf


Linux utilise la stratégie suivante :vous (le responsable du système) fournissez des liens symboliques à partir d'un fichier de bibliothèque partagée "spécifique", comme ceci :

lrwxrwxrwx 1 root root    16 2011-09-22 14:36 libieee1284.so -> libieee1284.so.3
lrwxrwxrwx 1 root root    20 2011-09-22 14:36 libieee1284.so.3 -> libieee1284.so.3.2.2
-rw-r--r-- 1 root root 46576 2011-07-27 13:08 libieee1284.so.3.2.2

De cette façon, les développeurs peuvent établir un lien soit avec -lieee1284 (toute version ABI), soit avec libieee1284.so.3 ou même avec la version spécifique et la version du correctif (3.2.2)


La meilleure façon de gérer cela est d'utiliser libtool, qui s'occupe de la gestion des versions pour vous.

Essentiellement, les informations de version ne sont pas (ou pas principalement, je ne sais pas de ma tête) encodées dans la bibliothèque elle-même, mais plutôt dans son nom de fichier. Les numéros de version sont normalement donnés au format à trois points, le numéro majeur augmentant pour chaque interruption de la compatibilité descendante de l'ABI, le numéro du milieu pour les interruptions de la compatibilité ascendante de l'ABI et le mineur pour les correctifs qui n'ont pas modifié l'ABI.

Comme indiqué par qdot, les liens symboliques dans le répertoire lib fournissent la version essentielle. Il existe un lien symbolique sans numéro de version (libfoo.so) pour les en-têtes de développement actuellement installés, un lien symbolique avec un numéro majeur pour chaque version majeure installée (libfoo.so.1) et un vrai fichier avec le numéro de version complet. Normalement, les programmes sont liés pour utiliser libfoo.so.1 lors de l'exécution afin que plusieurs versions majeures puissent coexister.


Linux
  1. Comment vérifier la version de la bibliothèque libc sur Debian Linux

  2. Comment vérifier la version de Redhat

  3. Comment vérifier la version de votre système d'exploitation Linux

  4. Comment initialiser une bibliothèque partagée sous Linux

  5. Comment comprendre le versionnage de Linux

Comment vérifier la version de Kali Linux

Comment vérifier la version Linux

Comment vérifier la version du noyau sous Linux

Comment mettre à niveau Alpine Linux vers la dernière version

Comment installer la bibliothèque Python PyBrain sous Linux

Comment vérifier la version de PHP sous Linux