我刚回到Arch在R上工作,但在尝试打开R
时遇到以下错误▶ R
/usr/lib64/R/bin/exec/R: error while loading shared libraries: libgfortran.so.3: cannot open shared object file: No such file or directory
这是我的r
信息
▶ pacman -Qi r
Name : r
Version : 3.4.1-1
Description : Language and environment for statistical computing and graphics
Architecture : x86_64
URL : http://www.r-project.org/
Licenses : GPL
Groups : None
Provides : None
Depends On : blas lapack bzip2 libpng libjpeg libtiff ncurses pcre readline zlib perl gcc-libs libxt libxmu
pango xz desktop-file-utils zip unzip
Optional Deps : tk: tcl/tk interface [installed]
texlive-bin: latex sty files [installed]
gcc-fortran: needed to compile some CRAN packages [installed]
Required By : rstudio-desktop-bin
Optional For : None
Conflicts With : None
Replaces : None
Installed Size : 58.13 MiB
Packager : Antonio Rojas <arojas@archlinux.org>
Build Date : Fri 30 Jun 2017 10:45:26 AM PDT
Install Date : Sat 15 Jul 2017 11:47:54 PM PDT
Install Reason : Explicitly installed
Install Script : No
Validated By : Signature
符号链接
▶ ls -halt /usr/lib/libgfortran.so.*
-rwxr-xr-x 1 root root 7.1M Jun 30 05:20 /usr/lib/libgfortran.so.4.0.0
lrwxrwxrwx 1 root root 20 Jun 30 05:20 /usr/lib/libgfortran.so.4 -> libgfortran.so.4.0.0
我发现了以下问题R v3.4.0-2 unable to find libgfortran.so.3 on Arch,但我无法遵循解决方案。当尝试yaourt
r-devel
包时,我收到了包构建错误。我也尝试使用不同版本的gfortran,但遇到了问题。我想知道是否有人可以再解决这个问题的解决方案。
答案 0 :(得分:1)
我刚遇到此问题,但我的错误消息是libgfortran.so.4
。这种错误有很多种方法可以发生,因为AUR的各种软件包都可以覆盖Arch repos中的软件包。在我的具体案例中,我使用lapack
覆盖了atlas-lapack
。
这是我怎么想的。
首先,我安装了pax-utils
,以便我可以拥有lddtree
工具。然后我跑了lddtree /usr/lib64/R/bin/exec/R
,它给了我这个输出:
/usr/lib64/R/bin/exec/R (interpreter => /lib64/ld-linux-x86-64.so.2)
libR.so => /usr/lib/R/lib/libR.so
libblas.so.3 => /lib64/libblas.so.3
libgfortran.so.4 => None
libatlas.so => /lib64/libatlas.so
# etc...
看起来libblas.so.3
是罪魁祸首。接下来,我运行pacman -Qo /usr/lib/libblas.so.3
,告诉我/usr/lib/libblas.so.3 is owned by atlas-lapack 3.10.3-1
。所以,我卸载了atlas-lapack
并重新重建了R,并自动从Arch回购中选择了lapack
而不是AUR中的atlas
版本。
答案 1 :(得分:0)
另一个可能的解释,以防发生在我以外的人身上
就我而言,我并没有覆盖blas和lapack。但是我拥有的和由谁提供的软件包是as.integer(max(ORDER_DT) - min(ORDER_DT))
。由于某种原因,我尝试使用python openblas-lapack
时遇到了相同的问题。解决方案是分别用openblas和lapack替换此包装。