我正在尝试在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 工作室没有正确获取路径值的问题吗?
似乎问题是由未以系统范围的方式设置$LD_LIBRARY_PATH 环境变量引起的。 与其他环境变量不同,$LD_LIBRARY_PATH 需要特殊处理(请参阅 Ubuntu 帮助页面并搜索 ld.so.conf.d)
我能够通过按照注释 15 设置 $LD_LIBRARY_PATH 来解决此问题:
echo "/usr/lib/oracle/11.2/client64/lib" | sudo tee /etc/ld.so.conf.d/oracle.conf
将 echo 语句更改为存储 Oracle 即时客户端库的位置。 (我的可以通过运行echo $OCI_LIB
找到。
然后更新缓存:
sudo ldconfig -v
然后打开RStudio,执行library("ROracle")
它应该可以工作。
我遇到了完全相同的问题,由于与一些非常友好和乐于助人的 Oracle 人员的会议,我刚刚解决了它。
我们需要在/etc/rstudio/rserver.conf
文件中包含以下行(默认情况下为空):
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桌面是否也需要它......
有关更多详细信息,请参阅此处(虽然它指的是Oracle R Enterprize,但它也适用于vanilla R)。