Не удается открыть файл lib

Обновлено: 21.11.2024

Установленные пакеты:
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64 .rpm
oracle-instantclient11.2-odbc-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm

Установлен из репозитория unixODBC

Переменные окружения прописаны, запускается под пользователем zabbix
isql -v testDB user passwd

все отрабатывает на ура

Создать элемент для мониторинга базы данных через интерфейс Я получаю сообщение об ошибке

Не удается подключиться к ODBC DSN: [SQL_ERROR]:[01000][0][[unixODBC][Диспетчер драйверов]Не удается открыть lib '/usr/lib/oracle/11.2/client64/lib/libsqora.so. 11.1' : файл не найден]|

прописаны символические ссылки
ldd libsqora.so.11.1
linux-vdso.so.1 => (0x00007ffd9ddfd000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f0fcde66000)
libm.so.6 => /lib64/libm.so.6 (0x00007f0fcdb63000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0fcd947000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f0fcd72e000)
libclntsh.so.11.1 => /usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1 (0x00007f0fcae9c000 )
libodbcinst.so.1 => /lib64/libodbcinst.so.1 (0x00007f0fcac8a000)
libc.so.6 => /lib64/libc.so.6 (0x00007f0fca8c8000)
/ lib64/ld-linux-x86-64.so.2 (0x00007f0fce240000)
libnnz11.so => ​​/usr/lib/oracle/11.2/client64/lib/libnnz11.so (0x00007f0fca4fb000)
libaio. so.1 => /lib64/libalio.so.1 (0x00007f0fca2f9000)
libltdl.so.7 => /lib64/libltdl.so.7 (0x00007f0fca0ef000)

кто-то сталкивался? как решить?

  • 0 Как настроить биллинг для 4 Elastix (Asterisk 13)?
  • 1 Как составить пропорцию?
  • 2 Где в мск можно оплатить ремонт r9-280x (артефакты)?
  • 2 Как изменить каталог в Debian после входа в систему через ssh?
  • 1 Как получить соответствующий блок при изменении URL-адреса?
  • 2 Как записать большую строку в файл?
  • 2 Можно ли найти оплачиваемую стажировку в Москве?
  • 1 Как в PhpStorm открывать несколько окон?

Да, тупой. Почитал, получается не загружаются савинести, так как env толком не заполнен. Скоро потрёт свою метель - прокомментировал mercedes 9 июля 19 в 11:39

Здесь. Несмотря на то, что я установил переменные окружения для пользователя для дочерних процессов, окружение все равно не получает эти переменные. У меня Centos ранее не работал, так как подозреваю, что решение простое и связано с настройкой. - прокомментировал Sofia_Flatley 9 июля 19 в 11:42

Я пытаюсь получить доступ к Oracle с сервера Linux. Я использую unixODBC.

Когда я пытаюсь получить доступ к oracle с помощью isql, я получаю сообщение об ошибке, что диспетчер драйверов не может открыть libsqora.so.12.1.

Затем, когда я использую isql для доступа к оракулу, я получаю следующую ошибку:

У меня была опечатка в odbcinst.ini. Я исправил, но все еще та же ошибка.

Ниже показан самый последний вывод env:

В базовом мгновенном клиенте нет этого файла (или каталога lib). Так это действительно мгновенный клиент, как следует из пути, или полноценный клиент (или сервер)?

Если вы переупорядочили файлы мгновенного клиента, я не знаю, может ли это привести к путанице внутренних ссылок - возможно, ошибка связана с другой, которую затем не удается найти? Вам также может понадобиться добавить каталог lib (и/или его родитель) в LD_LIBRARY_PATH , имеет ли это значение?

У меня работает isql, но я обнаружил, что приложение, для которого я его создаю, поддерживает только 32-битный клиент oracle. Поэтому я установил 32-битный оракул и снова сломал его. Теперь я получаю ту же ошибку при выполнении sql.

3 ответа 3

Эта ошибка вводит в заблуждение:

Я смог отследить отсутствующий файл, выполнив:

Это вернуло серию файлов, и один из них сказал:

Это было виновником для меня. Затем я создал нужную мне ссылку и вуаля, ошибка исчезла.

Спасибо за совет, возникла та же проблема с отсутствующим файлом при настройке доступа к приложению Linux I в Ubuntu.

Если файл присутствует, но не указан в пути к библиотеке, вы можете задать LD_LIBRARY_PATH или добавить файл в /etc/ld/conf.d и повторно запустить ldconfig

@user3771500 Можете ли вы опубликовать, какие ссылки вы создали, мне не хватает этих файлов: libicuuc.so.42 и libicudata.so.42

Я хотел бы также знать, как вы "создали ссылку"? На моей стороне есть libclntsh.so.12.1 => not found и libclntshcore.so.12.1 => not found

Мгновенный клиент не имеет каталога lib. Если вы загрузили пакет InstantClient-odbc-linux и разархивировали его в том же месте, что и базовый пакет, то файл libsqora.so.11.1 будет находиться непосредственно в папке /usr/local/easysoft/oracle/InstantClient112 .

Итак, ваш .ini должен указывать на:

Обратите внимание на расширение; вы можете связать это с libsqora.so . Если вы переместили файлы .so в подкаталог после распаковки (?), то вам понадобится:

Похоже, вы реорганизовали файлы мгновенного клиента после распаковки, создав каталог lib. Я не уверен, что это напрямую вызовет у вас проблемы. Но вы также не установили LD_LIBRARY_PATH , как предлагают инструкции по установке:

  1. Загрузите соответствующие пакеты Instant Client для вашей платформы. Для всех установок ТРЕБУЕТСЯ пакет Basic.

  2. Разархивируйте пакеты в один каталог, например "instantclient".

  3. Укажите в качестве пути загрузки библиотеки в вашей среде каталог на шаге 2 ("instantclient"). На многих платформах UNIX LD_LIBRARY_PATH является подходящей переменной среды. В Windows следует использовать PATH.

  4. Запустите приложение и наслаждайтесь.

Очевидно, что шаг (4) у вас еще не работает, но я думаю, это потому, что вы не выполнили шаг (3); и я думаю, что, поскольку вы разделили файлы, что само по себе может вызвать проблему, вам может потребоваться включить оба файла . /InstantClient112 и . /InstantClient112/lib в переменной LD_LIBRARY_PATH. И убедитесь, что измененное значение экспортировано. Я не уверен, почему вы хотите изменить порядок файлов.

затем, когда я использую isql для доступа к оракулу, я получаю эту ошибку:

Что не так с моей конфигурацией, кто-нибудь может мне помочь??

Ответы

Разве в начале пути к местоположению драйвера ODBC не пропущена косая черта?

Проверьте "ls -al root/download/odbc/instantclient_12_1/libsqora.so.12.1" и сообщите результат.

Кстати, если вы хотите получить доступ к Postgres из Oracle, вам не нужен драйвер Oracle ODBC.

это результат "ls -al linsqora.so.12.1"

я пытался использовать ldd для libsqora и получил такой результат

libodbcinst.so.2 => не найдено (я скопировал его в библиотеку, но не нашел)

libaio.so.1 => не найдено

libclntshcore.so.12.1 => не найден

libclntshcore.so.12.1 => не найден

я пытаюсь скопировать много файлов в lib, но ничего не находит, что не так??

Вы проверили это с помощью "ls -al root/download/odbc/instantclient_12_1/libsqora.so.12.1"?

Для меня это выглядит так, что вы пропустили косую черту в начале, и правильный путь должен быть "/root/download/odbc/instantclient_12_1/libsqora.so.12.1".

Какую версию драйвера ODBC вы установили (odbcinst -j)?

libaio.so обычно устанавливается в /usr/lib64/ части пакета libaio.

А libclnt — это клиентская библиотека Oracle. Поэтому убедитесь, что вы правильно установили LD_LIBRARY_PATH.

- да, я проверил root/download/odbc/instantclient_12_1/libsqora.so.12.1

- я использовал косую черту, но все равно не могу открыть libsqora.so

- я установил ODBC 2.3.1

- я нашел libaio.so в /usr/lib64, но до сих пор не нашел в ldd

- я установил LD_LIBRARY_PATH в:

пожалуйста, опубликуйте вывод команды "env" и "ls -al /root/download/odbc/instantclient_12_1/libsqora.so.12.1", а затем сразу же снова вызовите "isql -v XE".

Пожалуйста, опубликуйте вывод для всех трех команд.

это результат

ls -al /root/download/odbc/instantclient_12_1/libsqora.so.12.1

Переменная ODBCINI не задана. Кроме того, вы установили для LD_LIBRARY_PATH значение LD_LIBRARY_PATH=/usr/lib:/usr/lib64, но он пропускает каталог драйвера Oracle ODBC, а также каталог клиентской библиотеки Oracle.

Кстати, почему вы хотите исследовать проблему с драйвером Oracle ODBC, если вашей реальной целью является подключение Oracle к базе данных Postgres? Разве не имеет смысла вместо этого установить драйвер Postgres ODBC и проверить, может ли драйвер подключиться?

Я думаю, что прежде чем использовать Postgres ODBC, я должен подключиться к Oracle из isql..

и при использовании postgres для подключения не удалось

извините, я недостаточно внимательно прочитал первое обновление или отвлекся, когда вы разместили его на форуме гетерогенных услуг. Вы хотите подключиться из Postgres к Oracle и, следовательно, вам нужен драйвер Oracle ODBC.

Драйверу Oracle ODBC требуются клиентские библиотеки Oracle. Поэтому обязательно добавьте их в LD_LIBRARY_PATH

Драйвер ODBC для SQL Server образа Docker — «Не удается открыть lib '/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.8.so.1.2': файл не найден»

У меня возникла проблема с запуском драйвера odbc sql-сервера в образе Docker. Подробности ниже:

Информация об ОС

Я добавил параметр трассировки odbc в файл odbinst.ini. Полная ошибка:

Трассировка ODBC

[ODBC][31][1642685080.665980][__handles.c][460]
Выход:[SQL_SUCCESS]
Environment = 0x561eac6f9b80
[ODBC][31][1642685080.666012][ SQLAllocHandle.c][377]
Запись:
Тип дескриптора = 2
Входной дескриптор = 0x561eac6f9b80
UNICODE Использование кодировки ASCII 'ANSI_X3.4-1968' и UNICODE 'UCS-2LE '

[ODBC][31][1642685080.666215][SQLAllocHandle.c][513]
Выход:[SQL_SUCCESS]
Выходной дескриптор = 0x561eac700050
[ODBC][31][1642685080.666236] [SQLDriverConnect.c][748]
Запись:
Connection = 0x561eac700050
Window Hdl = (nil)
Str In = [DRIVER=;server=TSVMAEPHQDB019;UID=SubSitesDataRead;PWD=* **********][длина = 96 (SQL _NTS)]
Str Out = 0x7ffded5a5620
Str Out Max = 2048
Str Out Ptr = (nil)
>Завершение = 0
[ODBC][31][1642685080.669342][SQLConnect.c][1140]Не удается открыть lib '/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.8.so.1.2': файл не найдено
[ODBC][31][1642685080.669379][SQLError.c][424]
Запись:
Connection = 0x561eac700050
SQLState = 0x7ffded5a9c36
Native = 0x7ffded5a9c30
Текст сообщения = 0x7ffded5a9c40
Длина буфера = 500
Длина текста Ptr = 0x7ffded5a9c2e
[ODBC][31][1642685080.669414][SQLError.c][474]
Выход: [SQL_SUCCESS]
SQLState = 01000
Native = 0x7ffded5a9c30 -> 0 (32 бита)
Текст сообщения = [[unixODBC][Диспетчер драйверов]Не удается открыть библиотеку '/opt/ microsoft/msodbcsql17/lib64/libmsodbcsql-17.8.so.1.2': файл не найден]
[01000][unixODBC][Диспетчер драйверов] Не удается открыть lib '/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.8.so.1.2': файл не найден
[ODBC][31][1642685080.669438][SQLError.c][424]
Запись:
Соединение = 0x561eac700050
SQLState = 0x7ffded5a9c36
Native = 0x7ffded5a9c30
Текст сообщения = 0x7ffded5a9c40
Длина буфера = 500
Text Len Ptr = 0x7ffded5a9c2e
[ODBC][31][1642685080.669461][SQLError.c][474]
Выход:[SQL_NO_DATA]
[ODBC][31][1642685080.669476][SQLError.c][424 ]
Запись:
Environment = 0x561eac6f9b80
SQLState = 0x7ffded5a9c36
Native = 0x7ffded5a9c30
Text Message = 0x7ffded5a9c40
Длина буфера = 500
Text Len Ptr = 0x7ffded5a9c2e
[ODBC][31][1642685080.669501][SQLError.c][474]
Выход:[SQL_NO_DATA]
[ISQL]ОШИБКА: не удалось подключить SQLDriverConnect
[ ODBC][31][1642685080.669524][SQLFreeHandle.c][290]
Запись:
Тип дескриптора = 2
Входной дескриптор = 0x561eac700050
[ODBC][31][1642685080.669553 ][SQLFreeHandle.c][339]
Выход:[SQL_SUCCESS]< br />[ODBC][31][1642685080.669569][SQLFreeHandle.c][220]
Запись:
Тип дескриптора = 1
Входной дескриптор = 0x561eac6f9b80

Некоторые важные примечания:

файл odbcinst.ini ниже:

[Драйвер ODBC 17 для SQL Server]
Описание=Драйвер ODBC Microsoft 17 для SQL Server
Драйвер=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.8.so.1.2
UsageCount=1

Файл расширения LIB — это библиотечный файл, который в первую очередь используется в качестве входных данных для компоновщика. Файлы LIB включают стандартные файлы библиотек COFF (Common Object File Format) и файлы импортированных библиотек.

Однако файлы LIB не ограничиваются одним приложением, это также общая библиотека данных, содержащая информацию, используемую конкретной программой, часто содержащую функции и константы, на которые программа ссылается.

Данные, которые может содержать файл LIB, являются переменными по своей природе и могут включать в себя реальные объекты, такие как текстовые вырезки, изображения или другие медиафайлы, и обычно на них ссылаются в запросах.

Файлы LIB аналогичны файлам DLL, они содержат библиотеки динамической компоновки, однако они представлены как альтернатива этим, которые в любом случае файлы LIB содержат статические библиотеки, которые можно использовать в качестве библиотек импорта для файлов DLL, помечая их значком расширение файла LIB.

Небезызвестное приложение для C++ так как представлено в виде файла импорта этого языка программирования. Файл LIB в C++ содержит информацию, необходимую компоновщику для разрешения внешних ссылок на экспортированные функции DLL.

Файлы LIB не следует открывать вручную, так как они являются двоичными и системными файлами.

Часто связанные объекты Windows:

<УЛ>
  • VisualStudio.lib.10.0
  • VisualStudio.lib.9.0
  • Открыть файл LIB в Windows

    • Найдите нужный файл LIB в проводнике ОС Windows и дважды щелкните его, чтобы запустить соответствующее приложение.
    • Если файл LIB не открывается в приложении, а вместо этого появляется сообщение об ошибке "Windows не удается открыть файл", попробуйте поискать приложение, которое может открыть рассматриваемый файл.
    • Если вы знаете приложение, которое может открыть файл LIB, запустите его и посмотрите, есть ли в приложении пункт Файл->Открыть в главном меню.
    • Если вы не знаете, какое приложение работает как средство открытия файлов LIB, попробуйте выполнить поиск по запросам "LIB wiki", "application to open LIB file" или "open LIB file" в поисковой системе, которая вам нравится.
    • Установите найденное приложение и проверьте, может ли оно открыть файл LIB.

    Открыть файл LIB в Mac OS

    • Найдите нужный файл LIB в Mac OS Finder и дважды щелкните его, чтобы запустить соответствующее приложение.
    • Если файл LIB не открывается в приложении Mac OS, а вместо этого вы получаете сообщение об ошибке «Нет приложения, предназначенного для открытия файла», вы можете нажать «Поиск в App Store» в диалоговом окне ошибки, и Mac OS показать вам приложения, совместимые с файлом LIB.
    • Если вы знаете приложение Mac OS, которое может работать как средство открытия файлов LIB, вы можете выбрать параметр «Выбрать приложение» в окне ошибки, чтобы связать расширение файла и открыть в нем файл LIB.
    • Если вы не знаете, какое приложение может открыть файл LIB, попробуйте выполнить поиск по запросам "LIB wiki", "application to open LIB file" или "open LIB file" в поисковой системе, которая вам нравится.
    • Установите найденное приложение и проверьте, может ли оно открыть файл LIB.

    Открыть файл LIB на Android

    • В списке приложений Android на устройстве Android найдите приложение "Мои файлы" или "Диспетчер файлов" и коснитесь его, чтобы запустить.
    • Нажмите на папку "Загрузки" внутри приложения.
    • Вы должны увидеть загруженный файл LIB в этой папке.
    • Нажмите на файл. Если устройство Android поддерживает открытие загруженного файла, он откроется в соответствующем приложении.
    • Если файл не открывается, вы можете найти соответствующее приложение, которое может открыть файл, выполнив поиск в Android App Store по запросу «LIB».
    • Если вы не можете открыть файл с приложениями из Android App Store, возможно, файл можно открыть только на настольных платформах, таких как Windows или Mac OS. Попробуйте поискать в Интернете "LIB-файл" и посмотрите, могут ли его открыть какие-либо настольные приложения.
    • Возможно также, что загруженный вами файл устарел и больше не поддерживается.

    Открыть файл LIB на iPhone или iPad

    • Откройте приложение «Файлы» на устройстве iPhone или iPad. Чтобы найти его, проведите вниз по главному экрану и введите "Файлы" в строке поиска.
    • Нажмите на папку «Загрузки» на главном экране приложения «Файлы».
    • Вы увидите все недавно загруженные файлы. Нажмите на файл LIB, чтобы просмотреть его.
    • Если у вас есть нужное приложение, которое может его открыть, оно автоматически запустится и откроет ваш файл.
    • Если у вас нет приложения, которое может его открыть, вам нужно найти «LIB» в магазине приложений Apple. Таким образом, вы можете найти приложения, которые могут открывать файлы LIB.
    • Если это не поможет, возможно, ваш файл может быть открыт только настольным приложением. Чтобы найти приложение, которое может открыть его на рабочем столе, найдите "LIB file" в своей любимой поисковой системе.

    Наполнение этого веб-сайта информацией и его поддержка — непрерывный процесс. Мы всегда приветствуем отзывы и вопросы, которые можно отправить, посетив страницу «Контакты». Однако, поскольку этот веб-сайт посещает много пользователей, а наша команда довольно мала, мы, возможно, не сможем лично ответить на каждый запрос. Спасибо за понимание.

    Читайте также: