前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >不知道为什么MAC安装R包时候总是出现gfortran错误

不知道为什么MAC安装R包时候总是出现gfortran错误

作者头像
生信技能树
发布2020-02-20 13:56:24
4.1K2
发布2020-02-20 13:56:24
举报
文章被收录于专栏:生信技能树生信技能树

前面其实我提到过一次:明明解决了gfortran问题但是仍然安装WGCNA失败,也是同样的报错,这次又出现了,但是我又是以另外一种方式解决了!很神奇

最近使用The Chip Analysis Methylation Pipeline,我们前面教程:450K芯片上面的甲基化探针到底需要进行哪些过滤 已经详细介绍过champ啦,这里我就只讲解我遇到的问题!

不得不说,每次安装 ChAMP 都得脱一层皮,它的依赖包实在是太多了。其中一个ChAMPdata_2.18.0.tar.gz就是680M文件。一般来说,我们切换好镜像哦,然后下载就不是问题了。

但是因为依赖包太多,所以其中个把包失败是理所当然的,比如我就再一次遇到gfortran错误!

ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0'
ld: warning: directory not found for option '-L/usr/local/gfortran/lib'
ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [fastICA.so] Error 1
ERROR: compilation failed for package ‘fastICA’
* removing ‘/Library/Frameworks/R.framework/Versions/3.6/Resources/library/fastICA’

对我们有很多年R语言经验的来说,这样的报错很明显,介绍我的mac电脑的fortran问题。

不过新手可能会纠结于非零报错,没有经验就会陷入进去,以为重点是下面的报错信息;

Warning messages:
1: In install.packages(...) :
  installation of package ‘fastICA’ had non-zero exit status
2: In install.packages(...) :
  installation of package ‘isva’ had non-zero exit status

我其实很早以前就解决过,就是安装好gcc罢了。

brew reinstall gcc

也就是说,我的电脑里面其实是有gcc也就是说,并不缺gfortran,但是报错是缺:-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0

这个时候,我灵机一动,查看了我在mac使用brew安装的gfortran以及库文件的路径:

/usr/local/Cellar/gcc/9.2.0_3/lib/gcc/9/libgfortran.5.dylib
/usr/local/Cellar/gcc/9.2.0_3/lib/gcc/9/libgfortran.a
/usr/local/Cellar/gcc/9.2.0_3/lib/gcc/9/libgfortran.dylib
/usr/local/Cellar/gcc/9.2.0_3/lib/gcc/9/libgfortran.spec

所以我就无中生有创造了一个目录,就是为了配合那个报错,它说缺gfortran,意思是缺:-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0 那我就创建它,然后把库文件复制过去。

sudo mkdir -p /usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0
sudo cp  /usr/local/Cellar/gcc/9.2.0_3/lib/gcc/9/*  /usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0 

最后就成功啦

BiocManager::install("fastICA",ask = F,update = F)
BiocManager::install("isva",ask = F,update = F)

成功加载champ后如下所示:

是不是很戏剧化,我都说不清楚这个知识点属于什么,但如果是新手碰到,可能就会搜索好几天都无法解决。然后过半个月重新回过头来看,突然间就好了。

玄学哦!后来在生信技能树VIP交流群跟大家讨论这个问题,说可能是MAC特有的fortran,不能通过brew安装gcc来解决

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档