ROracle不在R工作室工作

时间:2015-01-19 13:36:57

标签: r rstudio rstudio-server roracle

我正在尝试在unix盒子上安装ROracle包。 包正确安装。但是库(ROracle)不能正常处理错误

library(ROracle)
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
unable to load shared object '/u01/group1/home/oracle/R/x86_64-redhat-linux-gnu-library/3.1/ROracle/libs/ROracle.so':
libclntsh.so.11.1: cannot open shared object file: No such file or directory
Error: package or namespace load failed for ‘ROracle’

该软件包从命令行安装正常,但只是在R studio中不起作用。我在论坛中经历了很多线程,很多人建议导出LD_LIBRARY_PATH并重置它。事实上我继续将所有R系统变量从命令行复制到R Studio中。 但它仍然没有成功。

我还注意到的一件事是每次重启R studio时R系统变量都会改变。可能是R studio没有正确获取路径值的问题。

2 个答案:

答案 0 :(得分:6)

似乎问题是由$ LD_LIBRARY_PATH环境变量未以系统范围的方式设置引起的。与其他环境变量不同, $ LD_LIBRARY_PATH需要特殊处理(请参阅Ubuntu Help page并搜索 ld.so.conf.d

我能够通过按comment 15设置$ LD_LIBRARY_PATH来解决这个问题:

echo "/usr/lib/oracle/11.2/client64/lib" | sudo tee /etc/ld.so.conf.d/oracle.conf

将echo语句更改为存储Oracle Instant Client库的位置。 (可以通过运行echo $OCI_LIB找到我的。

然后更新缓存:

sudo ldconfig -v

然后打开RStudio,执行library("ROracle")它应该可以工作。

答案 1 :(得分:2)

我遇到了完全相同的问题,我刚刚解决了这个问题,这要归功于与一些非常友善和乐于助人的Oracle人员的会议。

我们需要在/etc/rstudio/rserver.conf文件中包含以下行(by default is empty):

rsession-ld-library-path=/usr/lib64/R/lib:/u01/app/oracle/product/12.1.0.2/dbhome_1/lib

即。 R& Oracle主目录:

$ echo $R_HOME
/usr/lib64/R
$ echo $ORACLE_HOME
/u01/app/oracle/product/12.1.0.2/dbhome_1

修改配置文件后,必须重新启动RStudio服务器。

我只用RStudio服务器检查过这个,所以不确定是否有必要使用RStudio桌面......

有关详细信息,请参阅here(虽然它指的是Oracle R Enterprize,但它也适用于vanilla R)。