5

我需要让 OCI 库在我的 rhel 6.3 机器上运行,并且在找不到 OCI 头文件时遇到了一些问题。我已经安装(使用 yum install)

oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm

因为这个官方页面是我运行 OCI 所需要的。为了测试整个事情,我安装了 sqplus64,它在我设置export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib. 不幸的是,设置后找不到头文件LD_LIBRARY_PATH。实际上我并不感到惊讶,因为include这些 oracle 路径中的任何一个都没有目录。

所以问题是:我从哪里得到这些丢失的头文件?他们真的已经在那里而且我可以找到他们吗?

顺便说一句:我正在做这整个练习,因为我想在我的 R Studio 服务器上使用 ROracle,而这个 R 包依赖于 OCI 库。一旦我回到 R 领域,这条路对我来说就变得不那么颠簸了。

编辑:这个文档帮助我更进一步。但是,我想我现在在“/usr/include/oracle/11.2/client64”中找到了一些头文件。但是我必须将哪个变量设置到这个位置?

4

2 回答 2

3

女士们先生们,解决方案是:

$ ./configure --with-oracle-headers-path=/usr/include/oracle/11.2/client64/ --with-oracle-lib-path=/usr/lib/oracle/11.2/client64/lib/

$ make
$ make install

至少这编译没有错误。现在让我们转向 R 包本身:

$ export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:$LD_LIBRARY_PATH
$ R CMD INSTALL ROracle_1.1-7.tar.gz

详细信息可以在这里找到。

于 2012-12-20T09:50:37.160 回答
3
  1. Oracle Instant Client 网站上下载oracle-instantclientoracle-instantclient-devel rpm
  2. 使用 yum 安装它们--nogpgcheck(感谢这个答案):
yum install --nogpgcheck oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
  1. LD_LIBRARY_PATH现在通过定义,OCI_LIBOCI_INC环境变量来安装 ROracle (如文档中所说):
LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib:$LD_LIBRARY_PATH OCI_LIB=/usr/lib/oracle/12.1/client64/lib OCI_INC=/usr/include/oracle/12.1/client64 R -e 'install.packages("ROracle", repos="http://cloud.r-project.org");'
于 2017-01-11T15:14:30.630 回答