R DirichletMultinomial 包 - libgsl.so.27:无法打开共享对象文件:没有这样的文件或目录

问题描述 投票:0回答:1

我在安装 DirichletMultinomial R 包时遇到问题。主要问题是,R 无法识别 libgsl.so.27,它位于我的 /usr/local/lib 目录中:

$ ls -lh /usr/local/lib
total 46M
-rw-r--r-- 1 root root  27M Apr 29 11:30 libgsl.a
-rw-r--r-- 1 root root 2.2M Apr 29 11:30 libgslcblas.a
-rwxr-xr-x 1 root root  948 Apr 29 11:30 libgslcblas.la*
lrwxrwxrwx 1 root root   20 Apr 29 11:30 libgslcblas.so -> libgslcblas.so.0.0.0*
lrwxrwxrwx 1 root root   20 Apr 29 11:30 libgslcblas.so.0 -> libgslcblas.so.0.0.0*
-rwxr-xr-x 1 root root 1.3M Apr 29 11:30 libgslcblas.so.0.0.0*
-rwxr-xr-x 1 root root  917 Apr 29 11:30 libgsl.la*
lrwxrwxrwx 1 root root   16 Apr 29 11:30 libgsl.so -> libgsl.so.27.0.0*
lrwxrwxrwx 1 root root   16 Apr 29 11:30 libgsl.so.27 -> libgsl.so.27.0.0*
-rwxr-xr-x 1 root root  16M Apr 29 11:30 libgsl.so.27.0.0*
drwxr-xr-x 2 root root   20 Apr 29 11:30 pkgconfig/

每当我尝试安装该软件包时,都会收到此错误:

gcc -shared -L/HL8/HApp/R/4.3.3/lib64/R/lib -L/usr/local/lib64 -o DirichletMultinomial.so R_init_DirichletMultinomial.o dirichlet_fit.o dirichlet_fit_main.o -L/usr/local/lib -lgsl -lgslcblas -lm -L/HL8/HApp/R/4.3.3/lib64/R/lib -lR
installing to /home/username/R/x86_64-pc-linux-gnu-library/4.3/00LOCK-DirichletMultinomial/00new/DirichletMultinomial/libs
** R
** data
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
Error: package or namespace load failed for ‘DirichletMultinomial’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/home/nsk980613/R/x86_64-pc-linux-gnu-library/4.3/00LOCK-DirichletMultinomial/00new/DirichletMultinomial/libs/DirichletMultinomial.so':
  libgsl.so.27: cannot open shared object file: No such file or directory
Error: loading failed

正如我所说,我已经通过使用包管理器 (yum) 和使用 tarball 手动安装来下载 gsl。我目前已经删除了 yum 安装的 gsl 软件包,因为它不起作用,而且我担心如果卸载手动 gsl 安装,我可能会破坏某些东西。

我确实尝试更新我的 LD_LIBRARY PATH: 导出 LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib

我已经看到类似的问题得到了解决,但对我来说这不起作用。我真的想不出它不起作用的原因,但如果有一件事我应该注意的话,那就是我目前正在远程服务器上使用 R。在我本地的 R 上下载它效果很好。

任何帮助或建议将不胜感激。谢谢!

r gsl
1个回答
0
投票

我没有 Rocky Linux 机器,但您需要将库安装到 Rocky Linux 8.9 Docker 映像上。

FROM rockylinux:8.9

RUN dnf install -y epel-release
RUN dnf config-manager --set-enabled powertools
RUN dnf install -y R gsl-devel

RUN R -e 'install.packages("BiocManager", repos="https://cloud.r-project.org")'
RUN R -e 'BiocManager::install("DirichletMultinomial", ask = FALSE)'
RUN R -e 'library(DirichletMultinomial)'

您是否在您的机器上遵循了这些步骤?

© www.soinside.com 2019 - 2024. All rights reserved.