GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo hacer el control de versiones de una biblioteca compartida en Linux?

La versión corta es que haces esto a través del soname de la biblioteca. Lea el capítulo 3 en http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html, así como el capítulo 3.3 Versiones ABI en http://www.akkadia.org/drepper/dsohowto.pdf


Linux utiliza la siguiente estrategia:usted (el mantenedor del sistema) proporciona enlaces simbólicos de un archivo de biblioteca compartido 'específico', como este:

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 esta forma, los desarrolladores pueden vincularse con -lieee1284 (cualquier versión ABI) o libieee1284.so.3 o incluso con la versión específica del lanzamiento y parche (3.2.2)


La mejor manera de manejar esto es usando libtool, que hace el control de versiones por usted.

Esencialmente, la información de la versión no está (o no principalmente, no lo sé por mi cabeza) codificada en la biblioteca en sí, sino en su nombre de archivo. Los números de versión normalmente se dan en formato de tres puntos, con el número mayor aumentando por cada interrupción en la compatibilidad ABI descendente, el medio para interrupciones en la compatibilidad ABI ascendente y el menor para parches que no cambiaron la ABI.

Como señaló qdot, los enlaces simbólicos en el directorio lib proporcionan el control de versiones esencial. Hay un enlace simbólico sin número de versión (libfoo.so) para los encabezados de desarrollo actualmente instalados, un enlace simbólico con un número principal para cada versión principal instalada (libfoo.so.1) y un archivo real con el número de versión completo. Normalmente, los programas están vinculados para usar libfoo.so.1 en tiempo de ejecución para que puedan coexistir varias versiones principales.


Linux
  1. Cómo verificar la versión de la biblioteca libc en Debian Linux

  2. Cómo verificar la versión de Redhat

  3. Cómo instalar la biblioteca Ncurses en Linux

  4. Biblioteca compartida dinámica de C++ en Linux

  5. Cómo configurar googleTest como una biblioteca compartida en Linux

Cómo comprobar la versión de Kali Linux

Cómo comprobar la versión de Linux

Cómo verificar la versión del kernel en Linux

Cómo actualizar Alpine Linux a la última versión

Cómo instalar la biblioteca Python de PyBrain en Linux

Cómo comprobar la versión de PHP en Linux