in

Instalación de varias versiones de una biblioteca compartida

Estoy ejecutando ubuntu 10.04 y quiero usar tmux 1.6. tmux tiene una dependencia en libevent 2.

Mi solución fue compilar libevent2 y pasar a /usr/local/lib luego compile tmux contra esta lib y colóquelo en /usr/local/bin. Esto funciona muy bien hasta que… lo reinicio. Esto es solo una suposición de mi parte, pero parece que otros binarios ahora se están vinculando a la biblioteca libevent2, presumiblemente porque está en la ruta de la biblioteca. Debido a que hay más de 60 paquetes con dependencias libevent1, esto hace que mi instalación básicamente pierda la cabeza.

¿Existe una forma idiomática de abordar la ejecución de una aplicación que tiene una dependencia de biblioteca central en una versión diferente? ¿Debería vincular estáticamente la lib?

2 respuestas
2

http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-102-3/ sugiere

Los programas binarios compilados generalmente se vinculan con /usr/lib/libXXX.so.1.2.3

Si usa una nueva versión específica, puede colocarla en /usr/lib/libXXX.so.3.4.5
y su programa recién creado debería vincularse contra esto.

En realidad, puede verificar si los programas antiguos ahora se vinculan con la nueva biblioteca al
ldd /path/to/program.

Si esto realmente sucede, usted puede:

  • poner la nueva lib en un directorio separado /special/path/lib y
  • inicie su programa especial con un script de shell contenedor, que establece
    LD_LIBRARY_PATH=/special/path/lib:$LD_LIBRARY_PATH
    y luego lanza el binario o
  • si compila su programa usted mismo, puede pasar el LDFLAGS=-Wl,-rpath,/special/path/libesto codifica la ruta de búsqueda de la biblioteca especial en su programa (bueno porque funciona sin un script contenedor)

¿Te ayudó la respuesta?

Subscribirse
Notificar por
guest
0 Comentarios
Inline Feedbacks
Ver todas las Respuestas

Cómo reparar dpkg: error al procesar el archivo /var/cache/apt/archives/kali-themes-common_2022.2.4_all.deb (–unpack):

¿Por qué se enciende el ventilador de mi horno cuando el termostato está apagado?