strongloop / strong-oracle

Deprecated: Node.js Driver for Oracle databases (Use https://github.com/oracle/node-oracledb instead)
Other
45 stars 18 forks source link

Multiple Issues on Mac OSX #16

Closed deltreey closed 9 years ago

deltreey commented 9 years ago

These errors are occuring when I attempt the command: npm install strong-oracle

I installed oracle's instant client to my home directory initially and got occi.h not found errors. After setting the environment variables per the instructions and adding the links, I was still receiving an occi.h not found error. Moving it to /opt/instantclient_11_2/ and pointing the environment variables there instead fixed this. I'm guessing something is hard coded.

After that, I'm now receiving a new error.

  CXX(target) Release/obj.target/oracle_bindings/src/connection.o
  CXX(target) Release/obj.target/oracle_bindings/src/oracle_bindings.o
  CXX(target) Release/obj.target/oracle_bindings/src/executeBaton.o
  CXX(target) Release/obj.target/oracle_bindings/src/outParam.o
  CXX(target) Release/obj.target/oracle_bindings/src/reader.o
  CXX(target) Release/obj.target/oracle_bindings/src/statement.o
  SOLINK_MODULE(target) Release/oracle_bindings.node
ld: library not found for -locci
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Naturally, I checked the /opt directory and don't see locci anywhere. Is it in a different package? Do I need to link a different file? I also double checked all of the available packages for 64 bit mac and didn't see any of them containing a file named similar to locci

On every single call, I've also been getting these errors:

> strong-oracle@1.2.1 install /Users/winse005/Documents/Git/executive-dashboarding/node_modules/strong-oracle
> node-gyp rebuild

xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

I don't have xcode installed, and none of the instructions I see state that I need it for this

As a side note, after getting the linked error, I ran chmod -R 777 /opt/instantclient_11_2 and the error persisted.

bnoordhuis commented 9 years ago

@deltreey Can you post the output of file /opt/instantclient_11_2? I suspect that the library has a different name in your install. There are instructions in the README that explain how to link in that case.

About that xcode-select error, please see this SO question. It's assumed that you have Xcode installed because that's really the only supported way of building node.js add-ons.

deltreey commented 9 years ago

ComputerName:~ UserName$ file /opt/instantclient_11_2 /opt/instantclient_11_2: directory ComputerName:~ UserName$ ls -l /opt/instantclient_11_2/ total 386296 -rwxrwxrwx@ 1 UserName wheel 484 Apr 10 2014 BASIC_README -rwxrwxrwx@ 1 UserName wheel 488 Apr 10 2014 SQLPLUS_README -rwxrwxrwx@ 1 UserName wheel 14348 Apr 10 2014 adrci -rwxrwxrwx@ 1 UserName wheel 40768 Apr 10 2014 genezi -rwxrwxrwx@ 1 UserName wheel 368 Apr 10 2011 glogin.sql -rwxrwxrwx@ 1 UserName wheel 66167420 Feb 7 2014 libclntsh.dylib.11.1 -rwxrwxrwx@ 1 UserName wheel 2817872 Jan 29 2014 libnnz11.dylib -rwxrwxrwx@ 1 UserName wheel 1897664 Feb 7 2014 libocci.dylib.11.1 -rwxrwxrwx@ 1 UserName wheel 118707148 Apr 10 2014 libociei.dylib -rwxrwxrwx@ 1 UserName wheel 159004 Jan 7 2014 libocijdbc11.dylib -rwxrwxrwx@ 1 UserName wheel 1365444 Jan 27 2014 libsqlplus.dylib -rwxrwxrwx@ 1 UserName wheel 1504252 Jan 7 2014 libsqlplusic.dylib -rwxrwxrwx@ 1 UserName wheel 2091135 Jan 28 2014 ojdbc5.jar -rwxrwxrwx@ 1 UserName wheel 2739616 Jan 28 2014 ojdbc6.jar drwxrwxrwx@ 7 UserName wheel 238 Apr 10 2014 sdk -rwxrwxrwx@ 1 UserName wheel 8744 Jan 27 2014 sqlplus -rwxrwxrwx@ 1 UserName wheel 162380 Apr 10 2014 uidrvci -rwxrwxrwx@ 1 UserName wheel 66779 Jan 7 2014 xstreams.jar ComputerName:~ UserName$

bnoordhuis commented 9 years ago

Oi, that should have been find, not file. At any rate, it looks like you're missing the libocci.dylib symlink. Create it manually with cd /opt/instantclient_11_2 && ln -s libocci.dylib.11.1 libocci.dylib and the build should succeed.

@raymondfeng Do you know if that symlink is created by default? My local install has it and, going by the timestamps, it looks like it was created by the installer.

deltreey commented 9 years ago

that fixed that error, newfile missing a link, which one do I change?

  CXX(target) Release/obj.target/oracle_bindings/src/connection.o
  CXX(target) Release/obj.target/oracle_bindings/src/oracle_bindings.o
  CXX(target) Release/obj.target/oracle_bindings/src/executeBaton.o
  CXX(target) Release/obj.target/oracle_bindings/src/outParam.o
  CXX(target) Release/obj.target/oracle_bindings/src/reader.o
  CXX(target) Release/obj.target/oracle_bindings/src/statement.o
  SOLINK_MODULE(target) Release/oracle_bindings.node
ld: library not found for -lclntsh
clang: error: linker command failed with exit code 1 (use -v to see invocation)
bnoordhuis commented 9 years ago

Weird, I just tried it and I get the same error. (The weird part is that I'm sure it used to work.)

It's easy to work around, just ln -s libclntsh.dylib.11.1 libclntsh.dylib, but I wonder if something changed in Oracle's installer. Will investigate.

deltreey commented 9 years ago

that did it. Leaving the issue open for you to investigate, but that's all the necessary links