Debian 10系统下为单个用户配置R使用的libblas与liblapack而非全局设置
Debian 10 单用户配置R专属BLAS/LAPACK 解决方案
原LD_LIBRARY_PATH配置失效原因
Debian 官方源打包的R默认对BLAS/LAPACK库设置了固定的搜索优先级,用户在.bashrc中配置的LD_LIBRARY_PATH优先级低于R内置的搜索路径,因此不会生效。
方案1:R专属配置(最简便,不影响其他程序)
该方案仅修改当前用户的R调用配置,对其他程序和其他用户完全无影响:
- 新建/编辑当前用户的R环境配置文件
~/.Renviron - 在文件末尾添加如下两行,替换为你需要使用的BLAS/LAPACK库绝对路径:
R_BLAS_LIB=/usr/lib/x86_64-linux-gnu/openblas/libblas.so.3 R_LAPACK_LIB=/usr/lib/x86_64-linux-gnu/openblas/liblapack.so.3
- 保存退出后重启R,执行
sessionInfo()即可验证BLAS/LAPACK已切换为指定版本。
注意:如果你的OpenBLAS没有安装在默认路径,需将上述配置中的文件路径替换为实际的libblas.so.3和liblapack.so.3绝对路径
方案2:全局用户级配置(同时影响当前用户所有程序)
如果需要让当前用户运行的所有程序都优先使用指定的BLAS/LAPACK,可通过更高优先级的LD_PRELOAD参数配置:
- 编辑当前用户的
~/.bashrc文件,在末尾添加如下内容:
export LD_PRELOAD="/usr/lib/x86_64-linux-gnu/openblas/libblas.so.3 /usr/lib/x86_64-linux-gnu/openblas/liblapack.so.3 $LD_PRELOAD"
- 执行
source ~/.bashrc使配置生效,重启R即可验证切换结果。
内容的提问来源于stack exchange,提问作者r_tist
相关产品推荐
相关产品推荐

