The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Linux + java + firebird embedded"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Firebird, Interbase)
Изначальное сообщение [ Отслеживать ]

"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
Где проблема закопалась?
Чтоб не телепатить, выводы каких команд предоставить?
Заранее спасибо.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Linux + java + firebird embedded"  +/
Сообщение от Ann None (?), 13-Сен-23, 15:25 
> Native library (linux-x86-64/libfbclient.so) not found in resource path

так а прочитать что ему надо и поставить никак?
apt install libfbclient2 в дебиане/убунте, dnf install libfbclient2 из epel репы в редхетоподобных

Ответить | Правка | Наверх | Cообщить модератору

3. "Linux + java + firebird embedded"  +/
Сообщение от 111 (??), 13-Сен-23, 15:38 
>> Native library (linux-x86-64/libfbclient.so) not found in resource path
> так а прочитать что ему надо и поставить никак?

так а прочитать еще раз и обратить внимание на слово embedded никак?
> apt install libfbclient2 в дебиане/убунте, dnf install libfbclient2 из epel репы в
> редхетоподобных

спасибо. с этого начинались изыскания.


Ответить | Правка | Наверх | Cообщить модератору

4. "Linux + java + firebird embedded"  +/
Сообщение от Ann None (?), 13-Сен-23, 16:16 
> спасибо. с этого начинались изыскания.

apparmor/selinux проверял?

Ответить | Правка | Наверх | Cообщить модератору

5. "Linux + java + firebird embedded"  +/
Сообщение от 111 (??), 13-Сен-23, 16:45 
>> спасибо. с этого начинались изыскания.
> apparmor/selinux проверял?

конечно. везде уже поудалено/отключено

Ответить | Правка | Наверх | Cообщить модератору

6. "Linux + java + firebird embedded"  +/
Сообщение от 23213 (?), 14-Сен-23, 19:52 
>[оверквотинг удален]
> 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".

Ответить | Правка | Наверх | Cообщить модератору

7. "Linux + java + firebird embedded"  +/
Сообщение от 111 (??), 15-Сен-23, 10:52 
>[оверквотинг удален]
> содержащий путь к каталогу с `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.

Ответить | Правка | Наверх | Cообщить модератору

8. "Linux + java + firebird embedded"  +/
Сообщение от Ann None (?), 17-Сен-23, 22:00 
> Почему такой эффект сказать сложно.

я так понимаю версия firebird embedded выше чем версия клиента из репы дистрибутива? например в убунте клиент 3.0.5, а сам firebird embedded с сайта тянется 3.0.10.

Ответить | Правка | Наверх | Cообщить модератору

9. "Linux + java + firebird embedded"  +/
Сообщение от 111 (??), 18-Сен-23, 12:29 
>> Почему такой эффект сказать сложно.
> я так понимаю версия firebird embedded выше чем версия клиента из репы
> дистрибутива? например в убунте клиент 3.0.5, а сам firebird embedded с
> сайта тянется 3.0.10.

для использования emb. ставить что-то из репозиториев не требуется

Ответить | Правка | Наверх | Cообщить модератору

10. "Linux + java + firebird embedded"  +/
Сообщение от Ann None (?), 18-Сен-23, 14:59 
>>> Почему такой эффект сказать сложно.
>> я так понимаю версия firebird embedded выше чем версия клиента из репы
>> дистрибутива? например в убунте клиент 3.0.5, а сам firebird embedded с
>> сайта тянется 3.0.10.
> для использования emb. ставить что-то из репозиториев не требуется

ну так клиентская то либа libfbclient из репы. а она походу 3й версии старовата

Ответить | Правка | Наверх | Cообщить модератору

11. "Linux + java + firebird embedded"  +/
Сообщение от 111 (??), 18-Сен-23, 17:43 
>>>> Почему такой эффект сказать сложно.
>>> я так понимаю версия firebird embedded выше чем версия клиента из репы
>>> дистрибутива? например в убунте клиент 3.0.5, а сам firebird embedded с
>>> сайта тянется 3.0.10.
>> для использования emb. ставить что-то из репозиториев не требуется
> ну так клиентская то либа libfbclient из репы. а она походу 3й
> версии старовата

что-то скачивать из репозиториев не требуется. скачиваем архив с сайта firebird и работаем с ним.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру