Ошибка при разработке приложения на node.js на компьютере под управлением Windows и развертывании в облаке с помощью серверной базы данных Oracle - PullRequest
0 голосов
/ 05 июня 2019

Я занимаюсь разработкой приложения с использованием node.js. Среда разработки находится в ОС Windows, соединяющейся с БД Oracle, где среда QAT находится в облаке со вкусом linux. Он отлично работает на dev, когда дело доходит до QAT, он выдает следующие ошибки. Хотел бы я, если бы я мог связать пакет oracledb перед развертыванием в QAT

[ERR] DPI-1047: Невозможно найти 64-битную клиентскую библиотеку Oracle: «libclntsh.so: не удается открыть общий объектный файл: такой файл или каталог отсутствует». См. https://oracle.github.io/odpi/doc/installation.html#linux для помощи [ERR] Инструкция по установке Node-oracledb: https://oracle.github.io/node-oracledb/INSTALL.html [ERR] Вы должны иметь 64-битные клиентские библиотеки Oracle в LD_LIBRARY_PATH или быть настроены с помощью ldconfig. [ERR] Если у вас нет Oracle Database на этом компьютере, установите пакет Instant Client Basic или Basic Light из [ERR] http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

Я пытался установить LIB PATH. это не помогло.

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

Сообщение об ошибке выглядит довольно ясно: вам нужно установить 64-битные клиентские библиотеки Oracle для Linux.Они уже есть на вашем компьютере разработчика для Windows.

Ссылки на URL-адреса ошибок показывают, как это сделать для среды QAT.Самым простым из них будет Instant Client, на который есть ссылка в сообщении.

Технически вы можете связать библиотеки Linux с приложением, но вам нужно будет каким-то образом установить путь поиска библиотеки операционной системы, например, LD_LIBRARY_PATH, прежде чем вызывать вашприложение.Вы можете сделать это с помощью сценария оболочки:

#!/bin/sh
export LD_LIBRARY_PATH=/whatever/instantclient_19_3
node myapp.js

Это может привести к путанице, и вам также необходимо загружать все библиотеки Instant Client при каждом развертывании.

Для Linux яя рекомендую рассматривать Instant Client как часть базовой ОС и требовать наличия компьютеров.Вы можете установить RPM-пакеты Instant Client без необходимости каких-либо переходов, см. Dockerfile .

0 голосов
/ 05 июня 2019

Вы пробовали установить npm после прибытия в QAT? Я считаю, что пакеты, которые полагаются на node-gyp, обычно выполняют некоторую компиляцию и зависят от текущей ОС.

...