【发布时间】:2021-09-06 11:52:51
【问题描述】:
我已经针对英特尔 MKL 从源代码编译了 R 4.1.0。
我已经放了:
source /opt/intel/oneapi/mkl/latest/env/vars.sh intel64
在~/.bashrc.
如果我用 RStudio 打开一个.R 文件,没问题。
但是如果我直接打开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 打开一个 .R 文件,没问题。” ——你到底是怎么做到的?您使用的是命令行还是某些 GUI?程序通常不会自动运行您的
.bashrc文件,因为它们通常不会启动新的 shell。您的环境只是从您当前的 shell 继承而来的。 -
根据您使用的系统类型,您可以简单地通过文件
/etc/ld.so.conf.d/local-mkl.conf并输入您的 MKL 库目录来解决此问题。否则,您可以例如使用我发布的脚本four+ years ago in this GH repo 将 MKL 更新为系统库(通过 .deb 文件,易于干净卸载)。简而言之,这与 R 无关,而仅与您的系统如何(或者更确切地说,不)告诉它的动态链接器这些库在哪里。 -
@MrFlick 当我说“如果我用 RStudio 打开 .R 文件,没问题”时,我的意思是我双击 nautilus(文件管理器)中的 .R 文件,该文件配置为使用 RStudio 打开它
-
@DirkEddelbuettel 我在 Fedora 34 工作站上。所以我是基于 .rpm 的。但是为什么打开
.R文件不会引发问题,而只是从头开始打开 RStudio 会引发问题呢? -
我使用
/etc/ld.so.conf.d/添加本地文件的第一个技巧应该非常适合您。