从命令行安装R包

时间:2012-10-30 04:17:05

标签: r rcurl

我在安装几个软件包时遇到了麻烦,但根本原因主要是缺少库。我将在此列出一个例子。

在R-2.15.2内

install.packages("RCurl")

/usr/share/R/include/Rinternals.h:676: note: expected 'const char *' but argument is of type 'ucs_t *'
gcc -std=gnu99 -shared -o RCurl.so base64.o curl.o curlInit.o curl_base64.o enums.o json.o memoryManagement.o myUTF8.o -L/jgi/local/Linux_x86_64/unixadm/curl/7.19.7/lib -lcurl -lidn -lssl -lcrypto -lrt -lssl -lcrypto -lz -lxml2 -L/usr/lib64/R/lib -lR
/usr/bin/ld: cannot find -lidn
collect2: ld returned 1 exit status
make: *** [RCurl.so] Error 1
ERROR: compilation failed for package 'RCurl'
* removing '/house/homedirs/a/apratap/lib/R/RCurl'

我尝试过很少的东西来提供库路径,但没有成功。

此外:

</scratch>echo $LD_LIBRARY_PATH 
/usr/lib:/house/homedirs/a/apratap/lib:/jgi/tools/lib
</scratch>echo $R_LD_LIBRARY_PATH 
/usr/lib:/house/homedirs/a/apratap/lib:/jgi/tools/lib

2 个答案:

答案 0 :(得分:1)

/usr/bin/ld: cannot find -lidn

意味着编译器正在寻找并找不到libidn,这似乎是这样的:

http://www.gnu.org/software/libidn/

因此,使用您的(未指定的)操作系统的软件包管理进行安装,然后重试。从源代码安装的R包不能期望整理所有系统依赖性。

这可能是libcurl的要求 - 你安装了吗?

答案 1 :(得分:-1)

我刚刚在CentOS 6.2中安装了RCurl而没有任何问题。从您的输出看起来,问题在于您的Linux安装(GNU链接器)。你能尝试重新安装make和gcc吗?