【问题标题】:How to install R package "copula" on RHEL7?如何在 RHEL7 上安装 R 包“copula”?
【发布时间】:2026-01-26 05:10:01
【问题描述】:

我们一直在尝试在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-develyum install gsl-devel);但是没有成功。

  2. 手动安装 GSL:

  • wget https://mirror.ibcp.fr/pub/gnu/gsl/gsl-latest.tar.gz
  • tar xfz gsl-latest.tar.gz
  • ./configure &amp;&amp; make &amp;&amp; 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

谢谢。

【问题讨论】:

  • 这和jupyterhub有关系吗?
  • 你好迈克尔,确实如此。我们在 Jupyterhub 上使用 RStudio。
  • 但看起来这个问题完全与在 linux 上使用 RStudio 包管理器有关——与 jupyterhub 本身无关。

标签: r rhel7 rstudio-server jupyterhub


【解决方案1】:

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

  1. 在安装copula之前设置以下环境变量:
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
  1. 通过R安装copula
> install.packages("copula")
  1. 手动将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  <<<<------------- MISSING 
        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/

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

【讨论】: