Gfortran错误在本地安装R-devel

时间:2017-04-11 17:28:14

标签: r libraries

我已经在网上圈了好几个小时了,所以我放弃了,需要问职业选手。

我正在尝试在Ubuntu服务器上的本地文件夹中安装较新版本的R.我需要一个特定的包(Phangorn),但系统范围的R太旧了,我无法升级它,因为它会破坏太多其他人的依赖(而且我不是管理员)。

所以,我下载了R-devel最新版本并遵循了这些优秀的说明(http://pj.freefaculty.org/blog/?p=315)。我必须安装我自己的zlib,liblzma(XZ)和pcre(现在在~/packages)的副本。我似乎不需要做curl和bzip2。这导致了足够多的问题,但经过多次努力,我能够成功编译R。

但是,当我尝试在其中安装Phangorn时,它会给我以下错误:

/usr/bin/ld: cannot find -lgfortran
/usr/bin/ld: cannot find -lgfortran
collect2: error: ld returned 1 exit status
make: *** [igraph.so] Error 1
ERROR: compilation failed for package ‘igraph’
* removing ‘/home/wms_joe/bin/R-devel/library/igraph’
ERROR: dependency ‘igraph’ is not available for package ‘phangorn’
* removing ‘/home/wms_joe/bin/R-devel/library/phangorn’

The downloaded source packages are in
    ‘/tmp/RtmpahSdck/downloaded_packages’
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done
Warning messages:
1: In install.packages("phangorn") :
  installation of package ‘igraph’ had non-zero exit status
2: In install.packages("phangorn") :
  installation of package ‘phangorn’ had non-zero exit status

所以我可以告诉Phangorn依赖于依赖于gfortran的igraph,R无法找到它。

它看起来与此主题中详述的问题相同: Building R package getting error "ld: cannot find -lgfortran "

但解决方案似乎都需要软连接,因此需要sudo完全违背了我在本地安装的要点:/

我有什么选择?如果我为我自己的目录下载lgfortran(假设甚至解决了问题)我应该将它链接到哪里?

1 个答案:

答案 0 :(得分:1)

那些不是优秀的指示'因为它们适用于RHEL6,而不适用于Ubuntu。所以你的阻抗不匹配。

在Ubuntu上,你最快的赌注(如果你有src-dep依赖)是

sudo apt-get build-dep r-base

第二快的是查看包元数据源以从debian / control中读取Build-Depends(但似乎并不是在线副本)。

至于phanghorn,你也可以尝试下载它的源代码,然后编辑一下特定R版本的要求,看看会发生什么 - 有时这只是用于改变,例如,小插曲并且不会影响您的可用性。

最后,您的构建失败,因为无法构建igraph,因为缺少gfortran组件。如果可以,请安装与您的编译器版本对应的libgfortran-*-dev包 - 并安装r-base-dev应该保证它。

最后但同样重要的是,考虑使用Docker来运行已安装程序的本地变体。