所以我无法加载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
一起使用
请告诉我如何提供帮助。
答案 0 :(得分:2)
ORACLE_HOME应该指向一个位置。你不应该设置LD_LIBRARY_PATH_64变量吗?
答案 1 :(得分:0)
我在加载"库(ORE)"
时遇到了同样的错误bash-4.1$ pwd
/usr/lib64/R/library
bash-4.1$ grep -irsh "libclntsh.so.11.1" *
Binary file ROracle/libs/ROracle.so matches
看起来共享对象ROracle.so指的是libclntsh.so.11.1而不是libclntsh.so.12.1
$ cd /scratch/softwares/R/db_instant_client/instantclient_12_1
ln -s libclntsh.so.12.1 libclntsh.so.11.1
作为一种解决方法,我创建了一个符号链接,因此libclntsh.so.12.1可以称为libclntsh.so.11.1。
template<typename T>
struct static_const
{
static constexpr T value {};
};
template<typename T>
constexpr T static_const<T>::value;
完成此步骤后,我可以成功加载库(ORE)。
有关详细信息,请参阅my website。
答案 2 :(得分:0)
设置$ LD_LIBARARY_PATH = $ ORACLE_HOME / lib
答案 3 :(得分:0)
如果你真的真的想在R环境中这样做,可以按如下方式加载特定的库:
dyn.load("/usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1")
library(ROracle)
参考文献:
答案 4 :(得分:0)
在/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
这帮助了我。