繁体   English   中英

如何安装 R 包“copula”?

[英]How to install R package "copula"?

我们一直在尝试在R上安装“copula”包,但失败并显示以下错误消息:

ERROR: dependency 'gsl' is not available for package 'copula'

  1. 安装 GSL (GNU Scientific Linux) 后,它一直在抱怨,但这次出现以下错误:
** package ‘gsl’ successfully unpacked and MD5 sums checked
checking for gsl-config... no
configure: error: gsl-config not found, is GSL installed? <<-----------
ERROR: configuration failed for package ‘gsl’
* removing ‘/opt/microsoft/ropen/3.5.3/lib64/R/library/gsl’
ERROR: dependency ‘gsl’ is not available for package ‘copula’
* removing ‘/opt/microsoft/ropen/3.5.3/lib64/R/library/copula’
  1. 我们还安装了gsl-devel ( yum install gsl-devel ); 虽然不成功。

  2. 手动安装 GSL:

  • wget https://mirror.ibcp.fr/pub/gnu/gsl/gsl-latest.tar.gz
  • tar xfz gsl-latest.tar.gz
  • ./configure && make && make install
  1. 回到R ,尝试再次安装copula ,但没有成功,但出现了不同的错误消息:
Error: package or namespace load failed for ‘gsl’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/opt/microsoft/ropen/3.5.3/lib64/R/library/gsl/libs/gsl.so':
  libgsl.so.25: cannot open shared object file: No such file or directory

有没有办法安装 GSL 并使libgsl.so.25可用于copula

谢谢。

我们尝试了以下解决方法来解决问题:

  1. 在安装copula之前设置以下环境变量:
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
  1. 通过R > install.packages("copula")安装copula

  2. 手动将libgsl.so.25复制到/usr/lib64

[root@worksation ~]# ldd /opt/microsoft/ropen/3.5.3/lib64/R/library/gsl/libs/gsl.so
        linux-vdso.so.1 =>  (0x00007ffc9b838000)
        libgsl.so.25 => not found
        libgslcblas.so.0 => /lib64/libgslcblas.so.0 (0x00007fd237b72000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fd237870000)
        libR.so => /usr/lib64/R/lib/libR.so (0x00007fd2371f2000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fd236e25000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fd237fcd000)
        libRblas.so => /usr/lib64/R/lib/libRblas.so (0x00007fd234931000)
        libgfortran.so.3 => /lib64/libgfortran.so.3 (0x00007fd23460f000)
        libquadmath.so.0 => /lib64/libquadmath.so.0 (0x00007fd2343d3000)
        libreadline.so.6 => /lib64/libreadline.so.6 (0x00007fd23418d000)
        libtre.so.5 => /lib64/libtre.so.5 (0x00007fd233f7d000)
        libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fd233d06000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fd233aa4000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fd23387e000)
        libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fd23366e000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fd233458000)
        librt.so.1 => /lib64/librt.so.1 (0x00007fd233250000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fd23304c000)
        libicuuc.so.50 => /lib64/libicuuc.so.50 (0x00007fd232cd3000)
        libicui18n.so.50 => /lib64/libicui18n.so.50 (0x00007fd2328d4000)
        libgomp.so.1 => /lib64/libgomp.so.1 (0x00007fd2326ae000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fd232498000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd23227c000)
        libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007fd232052000)
        libicudata.so.50 => /lib64/libicudata.so.50 (0x00007fd230a80000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fd230779000)
  • 要找到 libgsl.so.25:
[root@workstation /usr/lib64]# find / -name libgsl.so.25 2>/dev/null
/usr/local/lib/libgsl.so.25
/root/gsl-2.7/.libs/libgsl.so.25
  • 然后:
cp -p /usr/local/lib/libgsl.so.25 /usr/lib64/

肯定有一种不同的方法来解决这个问题,但这个方法对我们来说效果很好。 谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM