当我try 安装某些需要libRblas.so
的软件包(imputeTS
)时,AFAIK引用了OpenBLAS,我得到一个错误,没有找到它:
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/home/jay/R/x86_64-pc-linux-gnu-library/4.2/fracdiff/libs/fracdiff.so':
libRblas.so: cannot open shared object file: No such file or directory
Calls: <Anonymous> ... asNamespace -> loadNamespace -> library.dynam -> dyn.load
Execution halted
然而,sessionInfo()
表示R实际上找到了它.
> sessionInfo()
R version 4.2.1 (2022-06-23)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 22.04 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so
我从this thread中学到"maybe ... another version of R [was built] and it sits in ... [the] $PATH before the packaged version",很可能是这样;我以前的R版本4.2.0
是一个自编版本,我通过再次下载源代码和./configure
-make uninstall
删除了它.不过,这个是通过sudo apt install r-base-core
安装的.可能现在某个地方一团糟.不幸的是,引用的线程得到了不同的解决,现在我在寻找各自的结论.
以下是更多信息:
whereis R
给出
~$ whereis R
R: /usr/bin/R /usr/lib/R /usr/lib64/R /etc/R /usr/local/lib/R /usr/share/R /usr/share/man/man1/R.1.gz
从错误消息中的相应文件中,使用sudo find ~ -name '<file>'
fracdiff.so
找到了,而libRblas.so
没有找到.
~/R/x86_64-pc-linux-gnu-library/4.2/fracdiff/libs/fracdiff.so
我已经试过了,
~$ sudo apt install libopenblas-dev
但很明显,它已经安装好了.
libopenblas-dev is already the newest version (0.3.20+ds-1).
以下this、libRlapack.so
和libRblas.so
的建议显然在我的系统中不存在,而另一个建议只是给出:
~$ sudo update-alternatives --config libblas.so
update-alternatives: error: no alternatives for libblas.so