5

所以我无法加载 ROracle。我确实对此很陌生,所以任何信息都值得赞赏,任何关于提供哪些进一步信息的信息也会有所帮助。

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

ROracle.so 正是它所说的位置。libclntsh.so.11.1 可以在/usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1. 这是结果.libPaths

> .libPaths()
[1] "/home/nguiller/R/x86_64-pc-linux-gnu-library/2.14" "/usr/local/lib/R/site-library"                     "/usr/lib/R/site-library"                          
[4] "/usr/lib/R/library"                                "/usr/lib/rstudio/R/library" 

我的 .Renviron 文件

LD_LIBRARY_PATH="/usr/lib/oracle/11.2/client64/lib:/home/nguiller/Downloads/instantclient_11_2"
ORACLE_HOME="/usr/lib/oracle/11.2/client64/:/home/nguiller/Downloads/instantclient_11_2"
OCI_LIB="/usr/lib/oracle/11.2/client64/lib"

由于 OCI 库,我在安装 ROracle 时遇到了很多麻烦,但它最终可以使用R CMD INSTALL --configure-ags='--with-oci-lib=/usr/lib/oracle/11.2/client64/lib --with-oci-inc=/usr/include/oracle/11.2/client64' ROracle_1.1-8.tar.gz

让我知道我能提供什么帮助。

4

5 回答 5

1

ORACLE_HOME 应该只指向一个位置。你不应该设置 LD_LIBRARY_PATH_64 变量吗?

于 2013-02-14T19:14:52.430 回答
0

如果你真的很想在 R 环境中执行此操作,可以按如下方式加载特定库:

dyn.load("/usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1")
library(ROracle)

参考:

从 R 内部设置 LD_LIBRARY_PATH

于 2017-10-03T01:28:14.777 回答
-1

加载“库(ORE)”时出现同样的错误

  Error in dyn.load(file, DLLpath = DLLpath, ...) :
      unable to load shared object '/usr/lib64/R/library/ROracle/libs/ROracle.so':
      libclntsh.so.11.1: cannot open shared object file: No such file or directory
    Error: package 'OREdm' could not be loaded

看起来共享对象 ROracle.so 指的是 libclntsh.so.11.1 而不是 libclntsh.so.12.1

bash-4.1$ pwd
/usr/lib64/R/library
bash-4.1$ grep -irsh "libclntsh.so.11.1" *
Binary file ROracle/libs/ROracle.so matches

作为一种解决方法,我创建了一个符号链接,以便 libclntsh.so.12.1 可以称为 libclntsh.so.11.1。

$ cd /scratch/softwares/R/db_instant_client/instantclient_12_1

 ln -s libclntsh.so.12.1 libclntsh.so.11.1

在这一步之后,我能够成功加载库(ORE)。

请查看我的网站了解更多详情。

于 2016-03-12T13:55:20.560 回答
-1

设置 $LD_LIBARARY_PATH=$ORACLE_HOME/lib

于 2017-06-28T07:35:45.193 回答
-1

将此设置在/etc/rstudio/rserver.conf

rsession-ld-library-
path=/usr/lib64/R/lib:/home/oracle/app/oracle/product/12.1.0/client_1/lib

然后重启Rserver

sudo rstudio-server stop
sudo rstudio-server start

这对我有帮助。

于 2017-12-08T14:16:39.327 回答