Install ROracle on Mac

I'm on Mac OS Sierra.

I tried to do - Install RODBC / ROracle packages on OS X Mavericks , but that didn't help.

This is what I did:

  • Downloaded from http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html - Basic, Sql plus, odbc
  • Unpacked in my home folder in instantclient_12_1
  • ln -s libclntsh.dylib.12.1 libclntsh.dylib
  • export DYLD_LIBRARY_PATH = / Users / dhananjaygoel / instantclient_12_1: $ DYLD_LIBRARY_PATH
  • R CMD INSTALL --configure-args = '- with-oci-lib = / Users / dhananjaygoel / instantclient_12_1' ROracle_1.3-1.tar.gz

This gives me the following error:

* installing to library '/Library/Frameworks/R.framework/Versions/3.3/Resources/library' * installing *source* package 'ROracle' ... ** package 'ROracle' successfully unpacked and MD5 sums checked configure: creating ./config.status config.status: creating src/Makevars ** libs clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/Users/dhananjaygoel/instantclient_12_1/sdk/include -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -fPIC -Wall -mtune=core2 -g -O2 -I/opt/local/include -c rodbi.c -o rodbi.o rodbi.c:2432:53: warning: format specifies type 'long long' but the argument has type 'sb8' (aka 'long') [-Wformat] sprintf(err_buf, RODBI_ERR_BIND_VAL_TOOBIG, bndsz); ^~~~~ /usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf' __builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__) ^~~~~~~~~~~ rodbi.c:2469:53: warning: format specifies type 'long long' but the argument has type 'sb8' (aka 'long') [-Wformat] sprintf(err_buf, RODBI_ERR_BIND_VAL_TOOBIG, bndsz); ^~~~~ /usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf' __builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__) ^~~~~~~~~~~ rodbi.c:2816:55: warning: format specifies type 'long long' but the argument has type 'sb8' (aka 'long') [-Wformat] sprintf(err_buf, RODBI_ERR_BIND_VAL_TOOBIG, bndsz); ^~~~~ /usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf' __builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__) ^~~~~~~~~~~ rodbi.c:2861:55: warning: format specifies type 'long long' but the argument has type 'sb8' (aka 'long') [-Wformat] sprintf(err_buf, RODBI_ERR_BIND_VAL_TOOBIG, bndsz); ^~~~~ /usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf' __builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__) ^~~~~~~~~~~ 4 warnings generated. clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/Users/dhananjaygoel/instantclient_12_1/sdk/include -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -fPIC -Wall -mtune=core2 -g -O2 -I/opt/local/include -c rooci.c -o rooci.o clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o ROracle.so rodbi.o rooci.o -L/Users/dhananjaygoel/instantclient_12_1 -lclntsh -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation installing to /Library/Frameworks/R.framework/Versions/3.3/Resources/library/ROracle/libs ** R ** inst ** preparing package for lazy loading ** help *** installing help indices ** building package indices ** testing if installed package can be loaded Error in dyn.load(file, DLLpath = DLLpath, ...) : unable to load shared object '/Library/Frameworks/R.framework/Versions/3.3/Resources/library/ROracle/libs/ROracle.so': dlopen(/Library/Frameworks/R.framework/Versions/3.3/Resources/library/ROracle/libs/ROracle.so, 6): Library not loaded: @rpath/libclntsh.dylib.12.1 Referenced from: /Library/Frameworks/R.framework/Versions/3.3/Resources/library/ROracle/libs/ROracle.so Reason: image not found Error: loading failed Execution halted ERROR: loading failed * removing '/Library/Frameworks/R.framework/Versions/3.3/Resources/library/ROracle' 

Someone please help.

+6
source share
2 answers

The following worked for me on several El Capitan machines, so maybe it will work on High Sierra. Unlike some other instructions, this does not require disabling SIP.

  • Install Oracle Instant Client Basic, SDK, and SQL * Plus packages. I am sure that I do not use the ODBC package, although it should not interfere if you have one.

  • Create or edit ~/.R/Makevars . Add the following:

     CC=/usr/bin/clang -rpath /Users/dhananjaygoel/instantclient_12_1 LDFLAGS=-L/Users/dhananjaygoel/instantclient_12_1 

    Both the -rpath options in CC and the -L linked directory in LDFLAGS must be the location of the .dylib Instant Client files. If you moved them to another place (I personally prefer to create a / lib subdirectory and put them there), then where should you point.

  • Run the install command:

    R CMD INSTALL --configure-args='--with-oci-lib=/Users/dhananjaygoel/instantclient_12_1' ROracle_1.3-1.tar.gz

    with --with-oci-lib= pointing to the root of Instant Client (unlike the links in Makevars, as far as I know, it does not depend on the location of the .dylib files).

0
source

I found this googling around.
Just Ctrl + f (or your alternative on Mac, I use linux) the word "image not found" and this will lead you to a problem.
The page will lead you to here .
However, it is very similar to your mistake, however I have no experience using a Mac, hope this helps :)

-one
source

Source: https://habr.com/ru/post/1013492/


All Articles