Sails Waterline Oracle - установка базы данных sails-oracle - Ошибка относительно oci / версии - PullRequest
0 голосов
/ 06 мая 2018

Я разработчик Grails (с Oracle), который экспериментирует с Sails.js

У меня проблема с установкой адаптера оракула для ватерлинии. Шаги, которые я могу сделать для дублирования, с помощью отдельного приложения узла, используя Mac OS:

Следуя инструкциям на https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#instosx

Я поместил файлы базового клиента Oracle в свою папку ~ / lib, используя: cp instantclient_12_2 / {libclntsh.dylib.12.1, libclntshcore.dylib.12.1, libons.dylib, libnnz12.dylib, libociei.dylib} ~ / lib /

В моем приложении узла я могу установить надстройку oracle, выполнив: npm install oracledb

Затем я могу запустить примеры, которые они предоставляют, например, выполнив «node select1.js», и он успешно подключается к базе данных и работает нормально и т. Д.

Затем я пытаюсь установить адаптер oracle для ватерлинии, выполнив: npm install sails-oracle-database

выдает эту ошибку:

>oracledb@1.13.1 install /Users/myuser/Documents/node/oracle/node_modules/sails-oracle-database/node_modules/oracledb

>node-gyp rebuild

node-oracledb ERR! Error: Cannot find /opt/oracle/instantclient/libclntsh.dylib
node-oracledb ERR! Error: Do you need to run 'cd /opt/oracle/instantclient && ln -s libclntsh.dylib.* libclntsh.dylib'?
node-oracledb ERR! Error: See https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#instosx

gyp: Call to 'INSTURL="https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#instosx"; ERR="node-oracledb ERR! Error:"; if [ -z $OCI_LIB_DIR ]; then if [ -f /opt/oracle/instantclient/libclntsh.dylib ]; then echo "/opt/oracle/instantclient/"; else echo "$ERR Cannot find /opt/oracle/instantclient/libclntsh.dylib" >&2; echo "$ERR Do you need to run 'cd /opt/oracle/instantclient && ln -s libclntsh.dylib.* libclntsh.dylib'?" >&2; echo "$ERR See $INSTURL" >&2; echo "" >&2; fi; else if [ -f "$OCI_LIB_DIR/libclntsh.dylib" ]; then echo $OCI_LIB_DIR; else echo "$ERR Cannot find \$OCI_LIB_DIR/libclntsh.dylib" >&2; echo "$ERR Do you need to run 'cd \$OCI_LIB_DIR && ln -s libclntsh.dylib.* libclntsh.dylib'?" >&2; echo "$ERR See $INSTURL" >&2; echo "" >&2; fi; fi;' returned exit status 0 while in binding.gyp. while trying to load binding.gyp
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:336:16)
gyp ERR! stack     at emitTwo (events.js:125:13)
gyp ERR! stack     at ChildProcess.emit (events.js:213:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:197:12)

Попытка разобраться в ошибке ... Похоже, она хочет, чтобы я установил переменные env, такие как: OCI_LIB_DIR Тем не менее, инструкции на странице оракула, на которую он ссылается, говорят, что в версии oracle-node 2 больше нет необходимости. Возможно ли, что адаптер waterline-oracle еще не совместим с этой версией?

1 Ответ

0 голосов
/ 07 июня 2018

Вам также понадобится пакет SDK для клиента мгновенного доступа oracle. Если в вашем мгновенном клиентском каталоге уже есть папка «sdk», то все готово. Затем скопируйте его в каталог "/ opt / oracle / instantclient".

➜  instantclient pwd
/opt/oracle/instantclient
➜  instantclient ls
BASIC_README             glogin.sql               libnnz12.dylib           libocijdbc12.dylib       libsqlplusic.dylib       uidrvci
SQLPLUS_README           libclntsh.dylib          libocci.dylib            libons.dylib             ojdbc8.jar               xstreams.jar
adrci                    libclntsh.dylib.12.1     libocci.dylib.12.1       liboramysql12.dylib      sdk
genezi                   libclntshcore.dylib.12.1 libociei.dylib           libsqlplus.dylib         sqlplus
...