ROracle没有在MacOS High Sierra上加载Instantclient库

时间:2017-10-22 02:18:39

标签: r oracle11g macos-high-sierra instantclient roracle

我已经安装了Oracle Instant Client 12.1.0.2.0,现在正尝试使用以下命令为R安装ROracle 1.3-1:

R CMD INSTALL --configure-args='--with-oci-lib=/usr/local/oracle/instantclient12 --with-oci-inc=/usr/local/oracle/instantclient12/sdk/include' ROracle_1.3-1.tar.gz

Oracle Instant Client安装在/ usr / local / oracle / instantclient12

不幸的是,我在ROracle安装结束时收到以下错误,并且很难弄清楚出了什么问题:

** testing if installed package can be loaded
Error: package or namespace load failed for ‘ROracle’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/Library/Frameworks/R.framework/Versions/3.4/Resources/library/ROracle/libs/ROracle.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/ROracle/libs/ROracle.so, 6): Library not loaded: @rpath/libclntsh.dylib.12.1
Referenced from: /Library/Frameworks/R.framework/Versions/3.4/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.4/Resources/library/ROracle’

无论出于何种原因,都找不到@ rpath / libclntsh.dylib.12.1并阻止ROracle完全安装。我已经尝试在〜/ lib和/ usr / lib中添加libclntsh.dylib.12.1的链接,但两个链接都没有。我也尝试使用环境变量DYLD_FALLBACK_LIBRARY_PATH和DYLD_LIBRARY_PATH指向包含libclntsh.dylib.12.1的目录,但这些目录也没有用。

我正在使用MacOS High Sierra(10.13)和R 3.4.2。

1 个答案:

答案 0 :(得分:0)

到目前为止我找到解决这个问题的唯一方法是在框架lib目录中为lib放置一个libclntsh.dylib.12.1链接。在我的计算机上,R框架lib目录位于{{1} }

我的即时客户端已安装在/Library/Frameworks/R.framework/Resources/lib

所以我使用以下命令来建立文件链接:

/usr/local/oracle/instantclient12

这解决了ROracle安装问题,我现在可以在R中加载ROracle库而不会出现问题。