В нашем продукте мы поставляем некоторые двоичные файлы Linux, которые динамически подключаются к системным библиотекам, таким как «libpam». В некоторых клиентских системах при запуске программы на stderr появляется следующая ошибка:
./authpam: /lib/libpam.so.0: no version information available (required by authpam)
Приложение работает нормально и выполняет код из динамической библиотеки. Так что это не фатальная ошибка, это просто предупреждение.
Я полагаю, что это ошибка динамического компоновщика, когда в установленной в системе библиотеке не хватает чего-то, чего ожидает наш исполняемый файл. Я мало что знаю о внутреннем устройстве процесса динамического связывания ... и поиск в Google по этой теме не очень помогает. :(
Кто-нибудь знает, что вызывает эту ошибку? ... как я могу определить причину? ... и как мы могли бы изменить наши исполняемые файлы, чтобы избежать этой проблемы?
Обновление: клиент обновился до последней версии debian «testing», и произошла та же ошибка. Так что это не устаревшая библиотека libpam. Думаю, я хотел бы понять, на что жалуется компоновщик? Как я могу исследовать основную причину и т. Д.?
Fwiw, у меня была эта проблема при запуске check_nrpe в системе, в которой была установлена система мониторинга zenoss. Чтобы усугубить путаницу, он отлично работал как пользователь root, но не как пользователь zenoss.
Я обнаружил, что у пользователя zenoss был LD_LIBRARY_PATH, из-за которого он использовал библиотеки zenoss, которые выдают эти предупреждения. Т.е.:
Так или иначе, что я пытаюсь сказать: проверьте также свои переменные, такие как LD_LIBRARY_PATH, LD_PRELOAD и т. Д.
источник
Как вы компилируете свое приложение? Какие флаги компилятора?
По моему опыту, когда вы ориентируетесь на обширную область систем Linux, создавайте свои пакеты на самой старой версии, которую вы готовы поддерживать, и поскольку все больше систем имеют тенденцию к обратной совместимости, ваше приложение будет продолжать работать. Собственно в этом и заключается причина создания версий библиотеки - обеспечение обратной совместимости.
источник
Вы это уже видели ? Причина, по-видимому, в очень старом libpam на одной из сторон, вероятно, на этом клиенте.
Или ссылки на версию могут отсутствовать: http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html
источник