Что не делает “никакой информации о версии доступная” ошибка из Linux динамический средний компоновщик?

В нашем продукте мы поставляем некоторые двоичные файлы Linux, которые динамично связываются с системными библиотеками как "libpam". В некоторых потребительских системах мы получаем следующую ошибку на stderr когда прогоны программы:

./authpam: /lib/libpam.so.0: no version information available (required by authpam)

Прекрасное выполнение приложения и выполняет код из динамической библиотеки. Таким образом, это не фатальная ошибка, это - действительно просто предупреждение.

Я полагаю, что это - ошибка, прибывает от динамического компоновщика, когда установленная библиотека системы пропустит что-то, что наш исполняемый файл ожидает. Я не знаю много о внутренностях процесса динамического подключения..., и гугление темы не помогает многому.: (

Кто-либо знает то, что вызывает эту ошибку?..., как я могу диагностировать причину?... и как мы могли изменить наши исполняемые файлы для предотвращения этой проблемы?

Обновление: клиент обновил до последней версии debian "тестирование", и та же ошибка произошла. Таким образом, это не устаревшее libpam библиотека. Я предполагаю, что хотел бы понять то, на что жалуется компоновщик? Как я могу исследовать первопричину и т.д.?

81
задан 26 September 2008 в 04:50
поделиться

1 ответ

Fwiw, у меня была эта проблема при запуске check_nrpe в системе с установленной системой мониторинга zenoss. Чтобы усугубить путаницу, он отлично работал как пользователь root, но не как пользователь zenoss.

Я обнаружил, что у пользователя zenoss была LD_LIBRARY_PATH, из-за которой он использовал библиотеки zenoss, которые выдают эти предупреждения. То есть:

root@monitoring:$ echo $LD_LIBRARY_PATH

su - zenoss
zenoss@monitoring:/root$ echo $LD_LIBRARY_PATH
/usr/local/zenoss/python/lib:/usr/local/zenoss/mysql/lib:/usr/local/zenoss/zenoss/lib:/usr/local/zenoss/common/lib::
zenoss@monitoring:/root$ /usr/lib/nagios/plugins/check_nrpe -H 192.168.61.61 -p 6969 -c check_mq
/usr/lib/nagios/plugins/check_nrpe: /usr/local/zenoss/common/lib/libcrypto.so.0.9.8: no version information available (required by /usr/lib/libssl.so.0.9.8)
(...)
zenoss@monitoring:/root$ LD_LIBRARY_PATH= /usr/lib/nagios/plugins/check_nrpe -H 192.168.61.61 -p 6969 -c check_mq
(...)

Так или иначе, что я пытаюсь сказать: проверьте также свои переменные, такие как LD_LIBRARY_PATH, LD_PRELOAD и т. Д.

4
ответ дан 24 November 2019 в 09:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: