Reputation: 3329
I have 64bit R (R version 2.15.2 (2012-10-26) -- "Trick or Treat") on Mac OSX 10.8.5, and Oracle Instantclient Version 11.2.0.3.0 from Oracle installed. I've gotten sqlplus, as well as Perl and Python to run on these. Now I am trying to build ROracle. It needs to be built from source, so I downloaded it and have tried running:
R CMD INSTALL ROracle_1.1-10.tar.gz
However, I think it is expecting a different directory structure than what the Instant Client has given me. For instance, when I try to run that command, I get:
$ R CMD INSTALL ROracle_1.1-10.tar.gz
* installing to library ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library’
* installing *source* package ‘ROracle’ ...
** package ‘ROracle’ successfully unpacked and MD5 sums checked
configure: error: "/Applications/instantclient_11_2/lib" directory does not exist
ERROR: configuration failed for package ‘ROracle’
* removing ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library/ROracle’
It is true, that I don't have a 'lib' directory in my '/Applications/instantclient_11_2' directory. I did however try to fake it out by creating one and linking to the .dylib files in the '/Applications/instantclient_11_2' directory, and I got past that error to a new one:
$ R CMD INSTALL ROracle_1.1-10.tar.gz
* installing to library ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library’
* installing *source* package ‘ROracle’ ...
** package ‘ROracle’ successfully unpacked and MD5 sums checked
configure: error: "/Applications/instantclient_11_2/rdbms/public" directory does not exist
ERROR: configuration failed for package ‘ROracle’
* removing ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library/ROracle’
So it is now looking for another directory that isn't there. I don't want to keep going and guessing at the directories it is expecting and trying to back-populate it with links to files it should be expecting in those directories (I don't even know what it might be expecting here).
Is there another way to go about installing this? I'm thinking I should be able to do this based upon the fact that Perl and Python can use these drivers.
Thanks, Matt
Upvotes: 3
Views: 2239
Reputation: 61
I think you have "ORACLE_HOME" variable set. I had the same problem and as soon as I did
export ORACLE_HOME=""
I could successfully compile ROracle.
Before:
me@my-laptop:~/Downloads$ R CMD INSTALL ROracle_1.1-10.tar.gz
*installing to library ‘/opt/R/library’
* installing *source* package ‘ROracle’ ...
** package ‘ROracle’ successfully unpacked and MD5 sums checked
configure: error: "/usr/lib/oracle/12.1/rdbms/public" directory does not exist
ERROR: configuration failed for package ‘ROracle’
* removing ‘/opt/R/library/ROracle’
After:
me@my-laptop:~/Downloads$ export ORACLE_HOME=""
me@my-laptop:~/Downloads$ R CMD INSTALL ROracle_1.1-10.tar.gz
* installing to library ‘/opt/R/library’
* installing *source* package ‘ROracle’ ...
** package ‘ROracle’ successfully unpacked and MD5 sums checked
configure: creating ./config.status
config.status: creating src/Makevars
** libs
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I/opt/oracle/sdk/include -fpic -O2 -pipe -g -c rodbi.c -o rodbi.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I/opt/oracle/sdk/include -fpic -O2 -pipe -g -c rooci.c -o rooci.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I/opt/oracle/sdk/include -fpic -O2 -pipe -g -c routl.c -o routl.o
gcc -std=gnu99 -shared -o ROracle.so rodbi.o rooci.o routl.o -L/opt/oracle -lclntsh -L/usr/lib/R/lib -lR
installing to /opt/R/library/ROracle/libs
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
* DONE (ROracle)
Upvotes: 6