Install ROracle in Mac
Asked Answered
I

2

9

I'm on Mac OS Sierra.

I have tried doing - Installation of RODBC/ROracle packages on OS X Mavericks but it didn't help.

This is what I did:

  • Downloaded from http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html - Basic, Sql plus, odbc
  • Unzipped 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

It 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.

Inheritrix answered 24/12, 2016 at 12:37 Comment(1)
did you find a solution for it?Transfigure
L
3

The following has worked for me on a few machines running El Capitan, so perhaps it will work on High Sierra. Unlike some other instructions, this does not require you to disable SIP.

  1. Install the Oracle Instant Client Basic, SDK, and SQL*Plus packages. I'm pretty sure I'm not using the ODBC package, though it shouldn't get in the way if you do have it.

  2. 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 setting in CC and the -L linked directory in LDFLAGS should be the location of the Instant Client's .dylib files. If you've moved them to another location (I personally prefer to make a /lib subdirectory and put them there), that's where you should point.

  3. 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 the Instant Client (unlike the references in Makevars, this does not, as far as I know, rely on the location of the .dylib files).

Lithea answered 27/3, 2018 at 16:46 Comment(1)
Still works for R3.6.2 and MacOS Catalina. Your mac will ask to allow the use of every .dylib file, so it takes a while but in the end you get to use ROracleRoodepoortmaraisburg
T
-2

I found this googling around.
Just Ctrl+f (or your alternative on Mac, I'm using linux) the word "image not found" and it'll take you to the problem.
The page will lead you eventually to here.
It's very similar to your error, however, I don't have any experience in using Mac, hope it helps though :)

Tu answered 24/12, 2016 at 12:50 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.