【问题标题】:failing to load ROracle: unable to load shared object ROracle.so: libclntsh.so.11.1 No such file or directory无法加载 ROracle:无法加载共享对象 ROracle.so:libclntsh.so.11.1 没有这样的文件或目录
【发布时间】:2013-01-30 16:19:36
【问题描述】:

所以我无法加载 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 一起工作

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

【问题讨论】:

    标签: oracle r rstudio


    【解决方案1】:

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

    【讨论】:

    • 这在我导出 env 变量后起作用(.Renviron 似乎不起作用)。太感谢了! export LD_LIBRARY_PATH="/usr/lib/oracle/11.2/client64/lib:/home/nguiller/Downloads/instantclient_11_2" && export ORACLE_HOME="/usr/lib/oracle/11.2/client64/" && export OCI_LIB="/usr/lib/oracle/11.2/client64/lib" && export LD_LIBRARY_PATH_64="/usr/lib/oracle/11.2/client64/lib:/home/nguiller/Downloads/instantclient_11_2"
    • 我有完全相同的问题

      library(ORE) 加载所需的包:OREdm Error in dyn.load(文件, DLLpath = DLLpath, ...) : 无法加载共享对象'/home/usernamehere/R/x86_64-redhat-linux-gnu-library/3.2/ROracle/libs/ROracle.so': libclntsh.so.11.1 :无法打开共享对象文件:没有这样的文件或目录错误:无法加载包'OREdm'


      您在用户目录中引用了instantclient_11_2。你是怎么弄到那里的……未吸过的文件?
    • @Madmartigan 检查您的安装(文件在那里...)和环境变量(您的平台的库路径)
    • 干杯,我有一个该死的错字......我看了很多次......你的正确 LD_LIBRARY_PATH 是需要 Instantclient_11_2 位置的那个......现在一切都很好......快乐的日子:)
    • 注意 - 在某些 Linux 发行版上,您必须根据 SO 上的 THIS 帖子修改 /etc/ld.so.conf.d/*.conf 中的 LD_LIBRARY_PATH
    【解决方案2】:

    如果你真的真的很想在 R 环境中这样做,你可以按如下方式加载特定的库:

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

    参考资料:

    Setting LD_LIBRARY_PATH from inside R

    【讨论】:

      【解决方案3】:

      设置 $LD_LIBARARY_PATH=$ORACLE_HOME/lib

      【讨论】:

        【解决方案4】:

        我在加载“library(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)。

        更多详情请查看my website

        【讨论】:

        • 您好,欢迎来到 Stack Overflow。在包含指向您自己的网站或博客的链接时请小心——您应该始终披露您的从属关系。有关详细指导,请参阅 How not to be a spammer
        【解决方案5】:

        /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
        

        这对我有帮助。

        【讨论】:

        • /etc/rstudio/rserver.conf 是只读的。
        猜你喜欢
        • 2016-04-10
        • 1970-01-01
        • 2013-02-24
        • 2013-07-13
        • 1970-01-01
        • 2015-06-07
        • 2019-02-16
        • 2015-10-28
        • 1970-01-01
        相关资源
        最近更新 更多