Linux + java + firebird embedded, 111, 13-Сен-23, 11:40 [смотреть все]Доброго дня, коллеги. Не знаю в какую тему писать. Уж простите. Помогите с решением. Есть связка приложение написанное под openjdk-8 + firebird 3 embedded. Вопрос. Это чудо совершенно спокойно работает под astra (alce-2.12.46.6-17.04.2023_15.09.iso) и под RedOS (redos-MUROM-7.3.3-20230815.0-Everything-x86_64-DVD1.iso), и вылетает с ошибкой "Unable to load library 'fbclient': Native library (linux-x86-64/libfbclient.so) not found in resource path" под ubuntu, debian, rocky. Т.е. архив с приложением и всеми конфигурациями в части firebird с "рабочей" системы переносим на "нарабочую" и получаем эту ошибку. Эксперимента ради сносилась через apt purge openjdk с астры, скачивался через apt download сам пакет openjdk, распаковывался без установки и запускалось приложение - полет нормальный. По lsof видно, что в "рабочем" варианте идет обращение к каталогу где находится libfbclient.so, в "нерабочем" - нет. Перед запуском приложения определяются переменные окружения, согласно документации на firebird export PATH=$PATH:`pwd`/fbembed export LD_LIBRARY_PATH=`pwd`/fbembed export FIREBIRD=`pwd`/fbembed Где проблема закопалась? Чтоб не телепатить, выводы каких команд предоставить? Заранее спасибо. |
- Linux + java + firebird embedded, Ann None, 15:25 , 13-Сен-23 (1)
> Native library (linux-x86-64/libfbclient.so) not found in resource pathтак а прочитать что ему надо и поставить никак? apt install libfbclient2 в дебиане/убунте, dnf install libfbclient2 из epel репы в редхетоподобных
- Linux + java + firebird embedded, 111, 15:38 , 13-Сен-23 (3)
>> Native library (linux-x86-64/libfbclient.so) not found in resource path > так а прочитать что ему надо и поставить никак?так а прочитать еще раз и обратить внимание на слово embedded никак? > apt install libfbclient2 в дебиане/убунте, dnf install libfbclient2 из epel репы в > редхетоподобных спасибо. с этого начинались изыскания.
- Linux + java + firebird embedded, 23213, 19:52 , 14-Сен-23 (6)
>[оверквотинг удален] > openjdk, распаковывался без установки и запускалось приложение - полет нормальный. По > lsof видно, что в "рабочем" варианте идет обращение к каталогу где > находится libfbclient.so, в "нерабочем" - нет. Перед запуском приложения определяются > переменные окружения, согласно документации на firebird > export PATH=$PATH:`pwd`/fbembed > export LD_LIBRARY_PATH=`pwd`/fbembed > export FIREBIRD=`pwd`/fbembed > Где проблема закопалась? > Чтоб не телепатить, выводы каких команд предоставить? > Заранее спасибо.Проблема, с которой вы сталкиваетесь, связана с тем, что ваше Java-приложение не может найти библиотеку `libfbclient.so`, которая требуется для работы с встроенной базой данных Firebird. Судя по вашему описанию, в Ubuntu, Debian и Rocky не удается найти библиотеку `libfbclient.so` в переменных окружения `LD_LIBRARY_PATH`. В Ubuntu и Debian библиотеки часто хранятся в других каталогах по умолчанию, и они не могут быть найдены, если не добавлены в переменную `LD_LIBRARY_PATH`. Чтобы решить эту проблему, вам нужно убедиться, что `libfbclient.so` может быть найден в переменной `LD_LIBRARY_PATH` или в путях поиска библиотек (как `LD_LIBRARY_PATH` в Ubuntu, Debian и Rocky). Вот несколько шагов, которые могут помочь: 1. Убедитесь, что `libfbclient.so` находится в каталоге, указанном в `LD_LIBRARY_PATH`. Если нет, вы можете скопировать библиотеку в этот каталог или добавить каталог, содержащий `libfbclient.so`, в переменную `LD_LIBRARY_PATH`. 2. Вместо того, чтобы устанавливать `LD_LIBRARY_PATH` в каждый раз, когда вы запускаете приложение, вы можете добавить его к конфигурации вашей системы. Например, в Ubuntu и Debian можно создать файл в каталоге `/etc/ld.so.conf.d/` (например, `firebird.conf`), содержащий путь к каталогу с `libfbclient.so`, а затем выполнить команду `sudo ldconfig`, чтобы обновить кэш библиотек. 3. Убедитесь, что переменная `LD_LIBRARY_PATH` устанавливается до запуска вашего Java-приложения. Вы можете добавить эту настройку в скрипт запуска вашего приложения или в файлы настройки окружения, такие как `.bashrc` или `.profile`. 4. Если `libfbclient.so` установлена системным пакетом, удостоверьтесь, что этот пакет установлен и доступен для вашего пользователя или системы. После внесения соответствующих изменений попробуйте снова запустить ваше Java-приложение. Это должно позволить ему успешно найти библиотеку `libfbclient.so` и исправить ошибку "Native library (linux-x86-64/libfbclient.so) not found in resource path".
- Linux + java + firebird embedded, 111, 10:52 , 15-Сен-23 (7)
>[оверквотинг удален] > содержащий путь к каталогу с `libfbclient.so`, а затем выполнить команду `sudo > ldconfig`, чтобы обновить кэш библиотек. > 3. Убедитесь, что переменная `LD_LIBRARY_PATH` устанавливается до запуска вашего Java-приложения. > Вы можете добавить эту настройку в скрипт запуска вашего приложения или > в файлы настройки окружения, такие как `.bashrc` или `.profile`. > 4. Если `libfbclient.so` установлена системным пакетом, удостоверьтесь, что этот пакет > установлен и доступен для вашего пользователя или системы. > После внесения соответствующих изменений попробуйте снова запустить ваше Java-приложение. > Это должно позволить ему успешно найти библиотеку `libfbclient.so` и исправить ошибку > "Native library (linux-x86-64/libfbclient.so) not found in resource path".Все выше изложенное проделано до описания проблемы в данном топике. Увы, решением не является. Как написано выше переменные окружения устанавливаются. На текущий момент решилось заменой libfbclient.so с версии 3 на 4. Почему такой эффект сказать сложно. Итог для астры и редос работает версия библиотеки 3, для остальных участников - 4.
- Linux + java + firebird embedded, Ann None, 22:00 , 17-Сен-23 (8)
> Почему такой эффект сказать сложно.я так понимаю версия firebird embedded выше чем версия клиента из репы дистрибутива? например в убунте клиент 3.0.5, а сам firebird embedded с сайта тянется 3.0.10.
- Linux + java + firebird embedded, 111, 12:29 , 18-Сен-23 (9)
>> Почему такой эффект сказать сложно. > я так понимаю версия firebird embedded выше чем версия клиента из репы > дистрибутива? например в убунте клиент 3.0.5, а сам firebird embedded с > сайта тянется 3.0.10.для использования emb. ставить что-то из репозиториев не требуется
- Linux + java + firebird embedded, Ann None, 14:59 , 18-Сен-23 (10)
>>> Почему такой эффект сказать сложно. >> я так понимаю версия firebird embedded выше чем версия клиента из репы >> дистрибутива? например в убунте клиент 3.0.5, а сам firebird embedded с >> сайта тянется 3.0.10. > для использования emb. ставить что-то из репозиториев не требуется ну так клиентская то либа libfbclient из репы. а она походу 3й версии старовата
- Linux + java + firebird embedded, 111, 17:43 , 18-Сен-23 (11)
>>>> Почему такой эффект сказать сложно. >>> я так понимаю версия firebird embedded выше чем версия клиента из репы >>> дистрибутива? например в убунте клиент 3.0.5, а сам firebird embedded с >>> сайта тянется 3.0.10. >> для использования emb. ставить что-то из репозиториев не требуется > ну так клиентская то либа libfbclient из репы. а она походу 3й > версии старовата что-то скачивать из репозиториев не требуется. скачиваем архив с сайта firebird и работаем с ним.
|