IBX от Rik и путь к клиентской библиотеке

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

IBX от Rik и путь к клиентской библиотеке

Сообщение slyubez »

Приветствую всех.

Столкнулся с непонятной багой. Работаю над одним проектом дома и на работе. На работе стоит Linux Mint 20 и Lazarus 2.0.16, дома Mint 21.1 и Lazarus 2.2.6. Сейчас перевожу один проект с Delphi на Лазаря для Linux с использованием IBX в Lazarus-виде. На работе все нормально, но дома программа в упор не видит клиентскую библиотеку - при коннекте с базой говорит, что библиотека не прописана в path, и рекомендует установить Firebird. На обоих ПК установлен Firebird 2.5.9 с корректной клиентской библиотекой. Гуглю, пытаюсь разобраться с LD_LIBRARY_PATH, но без успеха. Может ли кто подсказать, что можно еще посмотреть?

Добавлено спустя 1 минуту 33 секунды:
Разрядность Firebird везде 64бит, установлен на оба компа из тарболла.

Добавлено спустя 1 минуту 4 секунды:
Firebird library not found in the path. Please install Firebird to use this functionality
Добавлено спустя 10 минут 43 секунды:
Сейчас попробовал задать полный путь к библиотеке - помогло, правда всплыла проблема с правами доступа, назначение которых почему-то не помогает.
RRYTY
постоялец
Сообщения: 253
Зарегистрирован: 25.12.2021 09:00:32

Сообщение RRYTY »

Включение пользователя в группу firebird что-то дает?
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »

RRYTY писал(а):Включение пользователя в группу firebird что-то дает?
Признаюсь, не додумался до этого. Сейчас попробую.

Добавлено спустя 9 минут 42 секунды:
Сейчас попробую.
Ничего не дает.

Добавлено спустя 2 минуты 33 секунды:
С правами тоже разобрался. Не учел, что для Линукса нет FB Embedded, да и смысла его использовать на этой системе с ее правилами тоже нет.
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

Обычно ни каких прав для клиентской библиотеки версии 2.* не требуется, всегда ложу её в папку с программой, в компонентах достаточно указать к ней путь. Единственное что приходит в голову, возможно есть ещё какие-то зависимости, без которых библиотека не загружается...
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »

Обычно ни каких прав для клиентской библиотеки версии 2.* не требуется, всегда ложу её в папку с программой, в компонентах достаточно указать к ней путь.
Я имел в виду права на доступ к файлам БД. А ошибка из топика говорит о том, что путь к библиотеке не прописан в path, а как его туда корректно прописать, я так и не понял. Все же на пингвине библиотеки работают совершенно не так, как в винде. Может быть, для пользователя firebird есть отдельные пути для библиотек?

Добавлено спустя 1 минуту 9 секунд:
Ранние эксперименты с этими компонентами в Линуксе убедили меня, что полный путь к библиотеке прописывать не требуется. Однако сегодня у меня возник такой затык...
svk12
постоялец
Сообщения: 411
Зарегистрирован: 09.06.2008 18:42:47

Сообщение svk12 »

Попробуйте сделать символическую ссылку "libfbclient.so.2" для установленной либы в "/usr/lib64"
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »

Попробуйте сделать символическую ссылку "libfbclient.so.2" для установленной либы в "/usr/lib64"
На днях попробую. Я уже пробовал делать их в /usr/lib.
svk12
постоялец
Сообщения: 411
Зарегистрирован: 09.06.2008 18:42:47

Сообщение svk12 »

Разрядность должна соответствовать.
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »

Разрядность должна соответствовать.
Всё соответствует.
RRYTY
постоялец
Сообщения: 253
Зарегистрирован: 25.12.2021 09:00:32

Сообщение RRYTY »

slyubez писал(а): ... На работе все нормально, но дома ...
Исследуйте разницу конфигураций "дом/работа". Можно и костылей поднаставить, и скочем примотать, но лучше выяснить принцип - что не соответствует необходимым требованиям.
DedFrend
постоялец
Сообщения: 157
Зарегистрирован: 25.11.2018 11:21:50

Сообщение DedFrend »

В зависимости от версии СУБД и ОС ibx может искать gds32 или fbclient
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

slyubez писал(а):
Обычно ни каких прав для клиентской библиотеки версии 2.* не требуется, всегда ложу её в папку с программой, в компонентах достаточно указать к ней путь.
ошибка из топика говорит о том, что путь к библиотеке не прописан в path, а как его туда корректно прописать, я так и не понял.
Путь что в Linux, что в Windwos прописывается одинаково, в редакторе компонента (см. скриншот). Больше ни чего не нужно.
Снимок экрана_2023-09-26_15-38-42.png
ps:
По умолчанию, там прописано: fbclient.so. Если не указан путь, то программа ищет файл с указанным именем в папке с программой.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »

Исследуйте разницу конфигураций "дом/работа". Можно и костылей поднаставить, и скочем примотать, но лучше выяснить принцип - что не соответствует необходимым требованиям.
Понимаю и занимаюсь этим. Но настроек много, и приходится спрашивать совета, что и где еще можно посмотреть.
Путь что в Linux, что в Windwos прописывается одинаково, в редакторе компонента (см. скриншот). Больше ни чего не нужно.
Я кое-чего не упомянул. В приложении производится динамическое создание компонентов IBX в отдельном классе, без их размещения на форме. Пришел к выводу, что лучше делать так, когда понадобилось написать бота для работы на сервере без графики, а в TIBDatabase по дефолту зашит визуальный англоязычный диалог ввода логина-пароля. Так что все свойства я прописываю полностью в коде после создания компонентов.

Добавлено спустя 3 минуты 27 секунд:
В зависимости от версии СУБД и ОС ibx может искать gds32 или fbclient
Лазаря я использую только для Линуксов. Для винды есть Delphi с FIBPlus. Код у меня единый, с кучей директив условной компиляции.
DedFrend
постоялец
Сообщения: 157
Зарегистрирован: 25.11.2018 11:21:50

Сообщение DedFrend »

По своему опыту скажу, что первое соединение с базой часто происходит через "пляски с бубном". И, поскольку потом все работает как часы, забываешь про свои мучения на первых порах.
Из советов общего плана.
Попробуйте соединиться с базой через isql или хотя бы gbak. Надо быть уверенным, что сам сервер работает.
Напишите минимальный код по открытию одной таблицы. Пусть он сначала заработает!
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »


Re: IBX от Rik и путь к клиентской библиотеке

Непрочитанное сообщение DedFrend » 27.09.2023 08:59:36
По своему опыту скажу, что первое соединение с базой часто происходит через "пляски с бубном". И, поскольку потом все работает как часы, забываешь про свои мучения на первых порах.
Из советов общего плана.
Попробуйте соединиться с базой через isql или хотя бы gbak. Надо быть уверенным, что сам сервер работает.
Напишите минимальный код по открытию одной таблицы. Пусть он сначала заработает!
Это как раз не проблема. Я еще раньше поставил Flamerobin из репозитория Минта, и как решил проблему с правами, соединение заработало. Также, после того, как был прописан полный путь к библиотеке, заработала и программа. Вопрос у меня был в другом: как в Минте 64бит приложение должно искать библиотеку, если прописать не полный путь, а только имя либы?
Вообще, как-то все это меня не радует... Первая версия этой проги на Delphi использовала Firebird Embedded с размещением библиотеки в каталоге с приложением, а базы - в любом месте, на какое у юзера есть права. В Windows такое поведение - норма. В Linux сложнее - библиотеки совсем в другом месте должны лежать. И увы, нету Firebird Embedded для Линукса - как раз из-за особенностей его разных семейств. Похоже, про портативный софт на нем можно и не думать.
Ответить