在进行单细胞的数据分析之前,相信每个小伙伴都经历过在Linux服务器或者自己本地化的电脑上装包到抓狂的过程,我就是其中的一个。
我在4月的时候开心的拿到我下游的R语言的数据,准备认真的做几次的复现,然后直接走下面大家的单细胞分析流程,但是我4月初卡在了装包上,通过一个一个手动的添加所需要的依赖库还有缺少的R包,终于历时了2-3d装好了,但是我4月30号手欠的听从了R的指示,说要安装limma去做后面的亚群差异分析的时候,我的服务器的后台装东西的时候又把我的Seurat挤掉了,我又开始在服务器当中不断去添加依赖库的过程。
首先是R语言版本的升级
我在尝试了对R4.0版本的安装Seurat后,发现我的编译路径一直在报错,因为我们的服务器目前是有两个R语言的版本,一个低版本的,一个是4.0以上的,所以有的时候如果没有将路径给全,有的时候编译的就不对,我一直以为是这样,所以我果断下了4.2的R版本,将环境变量给到4.2,但是发现我的g 编译不过去了,一直在报这个错,因为我以前也是有这个报错,以为还是前面的依赖库的问题,百度了一下,发现不是,是我们的g 版本太低了,而且环境变量没有给予到位,导致不能进行C99的模式。
针对这个报错我是参考的这个博主的文章(https://cloud.tencent.com/developer/article/1937953)
代码语言:javascript复制//在root用户下安装
yum install centos-release-scl
yum install devtoolset-9
因为我前面装过devtoolset-9,只是对其中一些需要更新的包进行了更新。
博主推荐的是代码建一个.R的文件夹,我是直接在WINSCP中建了这个文件夹,建了Makevars文件,将以下的代码添加上去并保存,我们需要自己看一下自己安装的是不是在相关的文件夹下面,如果没有还需要whereis一下。
代码语言:javascript复制//
CXX11=/opt/rh/devtoolset-9/root/usr/bin/g -std=c 11 -fPIC
CXX14=/opt/rh/devtoolset-9/root/usr/bin/g -std=c 14 -fPIC
接下来就是跳转到R下面,进行install.packages("Seurat"),目前现在看我的g 编译是没有问题的,后面有可能还有一些包不太对,需要补相关的依赖库。
21个warnings。。。
对编译环境进行调试后,得到了21个警告,比昨天的50个警告少了很多了,照以往的经验来看,只要解决一些依赖库的问题,基本可以保证后面的一些警告是在安装包的时候自己装好的。
接下来开始对每个缺少的包进行安装。
首先是stringi包
代码语言:javascript复制// 输入最传统的install.packages的方法
install.packages("stringi")
相比于昨天也是成功的装了stringi包,如果是后台缺少相关的环境条件,可以参考这篇文章,来进行依赖库的补齐(https://stringi.gagolewski.com/install.html)
代码语言:javascript复制// rgeos包安装
install.packages("rgeos")
安装后出现了这个报错,百度是说找不到共载对象,其实最主要的报错原因是找不到geos的库,所以我们重新尝试安装一下geos的库,主要学习的安装方法是这篇文章(https://blog.csdn.net/weixin_30588907/article/details/95281468),主要我已经连续两天是这个报错,装不上这个包,发现这个包需要一个依赖库,所以查看服务器上的geos,发现是前几天的时候编译不过去,所以没有lib这个文件夹,导致找不到,不能连接。但是我发现不能配置太高的版本,否则就会编译不出来lib的文件夹,怀疑是服务器的问题导致的。