En nuestro producto enviamos algunos binarios de Linux que enlazan dinámicamente a bibliotecas del sistema como "libpam". En algunos sistemas de clientes, obtenemos el siguiente error en stderr cuando se ejecuta el programa:
./authpam: /lib/libpam.so.0: no version information available (required by authpam)
La aplicación funciona bien y ejecuta código de la biblioteca dinámica. Entonces, esto no es un error fatal, en realidad es solo una advertencia.
Me imagino que este error proviene del enlazador dinámico cuando a la biblioteca instalada del sistema le falta algo que nuestro ejecutable espera. No sé mucho sobre los aspectos internos del proceso de vinculación dinámica ... y buscar en Google el tema no ayuda mucho. :(
¿Alguien sabe qué causa este error? ... ¿cómo puedo diagnosticar la causa? ... y ¿cómo podríamos cambiar nuestros ejecutables para evitar este problema?
Actualización: el cliente actualizó a la última versión de debian "testing" y se produjo el mismo error. Entonces no es una biblioteca libpam desactualizada. Supongo que me gustaría entender de qué se queja el enlazador. ¿Cómo puedo investigar la causa subyacente, etc.?
Fwiw, tuve este problema al ejecutar check_nrpe en un sistema que tenía instalado el sistema de monitoreo zenoss. Para aumentar la confusión, funcionó bien como usuario root pero no como usuario zenoss.
Descubrí que el usuario de zenoss tenía un LD_LIBRARY_PATH que hacía que usara las bibliotecas de zenoss, que emitían estas advertencias. Es decir:
De todos modos, lo que estoy tratando de decir: verifique sus variables como LD_LIBRARY_PATH, LD_PRELOAD, etc. también.
fuente
¿Cómo estás compilando tu aplicación? ¿Qué banderas del compilador?
En mi experiencia, cuando se dirija al vasto ámbito de los sistemas Linux, cree sus paquetes en la versión más antigua que esté dispuesto a admitir y, debido a que más sistemas tienden a ser compatibles con versiones anteriores, su aplicación seguirá funcionando. En realidad, esta es la razón principal del control de versiones de la biblioteca: garantizar la compatibilidad con versiones anteriores.
fuente
¿Has visto esto ya? La causa parece ser un libpam muy antiguo en uno de los lados, probablemente en ese cliente.
O pueden faltar los enlaces para la versión: http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html
fuente