问题描述
我已经针对英特尔 MKL 从源代码编译了 R 4.1.0。
我已经把:
source /opt/intel/oneapi/mkl/latest/env/vars.sh intel64
在~/.bashrc
。
但是如果我直接打开RStudio,就无法正确启动R,报错:
/usr/lib/rstudio/bin/rsession: error while loading shared libraries: libmkl_gf_lp64.so.1: cannot open shared object file: No such file or directory
这是为什么?直接启动时 RStudio 不运行 ~/.bashrc
吗?
我正在运行 Fedora 34 工作站。
解决方法
当共享库存储在“非标准位置”时,我们必须告诉动态链接器。这有时是在调用脚本中完成的(通常是捆绑软件的情况,例如,当您下载带有相当数量的共享库本地构建的 RStudio 时),但更通用的解决方案是通过其配置告诉 ldconfig
.
旧系统在 /etc/ld.so.conf
中每个目录使用一行。较新的系统使用包含带有条目的小文件的目录来概括这一点(像许多其他配置一样)。因此,您可以创建一个名为 /etc/ld.so.conf.d/local-mkl.conf
的文件,并将目录路径放在其中。如果您然后运行 sudo ldconfig
,所有应用程序都会知道它——包括 R 和 RStudio 调用 R。