R v3.4.0-2无法找到libgfortran.so.3 Arch

时间:2017-07-17 05:47:04

标签: r linux archlinux

我刚回到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,但遇到了问题。我想知道是否有人可以再解决这个问题的解决方案。

2 个答案:

答案 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替换此包装。