GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire il controllo delle versioni di una libreria condivisa in Linux?

La versione breve è che lo fai tramite il soname della biblioteca. Leggi il capitolo 3 su http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html e il capitolo 3.3 Versioning ABI su http://www.akkadia.org/drepper/dsohowto.pdf


Linux utilizza la seguente strategia:tu (il manutentore del sistema) fornisci collegamenti simbolici da un file di libreria condiviso 'specifico', come questo:

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

In questo modo, gli sviluppatori possono collegarsi a -lieee1284 (qualsiasi versione ABI), o libieee1284.so.3 o anche alla specifica release e versione patch (3.2.2)


Il modo migliore per gestirlo è usare libtool, che esegue il versioning per te.

In sostanza, le informazioni sulla versione non sono (o non principalmente, non lo so dalla mia testa) codificate nella libreria stessa, ma piuttosto nel suo nome file. I numeri di versione vengono normalmente forniti in formato a tre punti, con il numero maggiore che aumenta per ogni interruzione della compatibilità ABI verso il basso, il numero centrale per le interruzioni della compatibilità ABI verso l'alto e il numero minore per le patch che non hanno modificato l'ABI.

Come notato da qdot, i collegamenti simbolici nella directory lib forniscono il versioning essenziale. C'è un collegamento simbolico senza numero di versione (libfoo.so) per le intestazioni di sviluppo attualmente installate, un collegamento simbolico con un numero principale per ogni versione principale installata (libfoo.so.1) e un file reale con il numero di versione completo. Normalmente, i programmi sono collegati per utilizzare libfoo.so.1 in fase di esecuzione in modo che possano coesistere più versioni principali.


Linux
  1. Come installare la libreria Ncurses in Linux

  2. Come controllare la versione di MySQL in Linux

  3. Introduzione alle librerie condivise Linux (come creare librerie condivise)

  4. Libreria condivisa dinamica C++ su Linux

  5. Come posso collegarmi a una versione precedente di una libreria condivisa

Come controllare la versione di Kali Linux

Come controllare la versione di Linux

Come controllare la versione del kernel in Linux

Come aggiornare Alpine Linux all'ultima versione

Come installare la libreria Python PyBrain in Linux

Come controllare la versione PHP su Linux