The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
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, !*! 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 и работаем с ним.




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

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