今天来谈下我的生信服务器搭建,总结出一套流程。避免循环反复问题。
当你装好了centos版本系统后,当然你也可以走ubuntu的linux版本。后面的流程如果有不同意见,请大家批评指正。centos系统安装在这就不在写了,网上一大把,建议装最新版本的。
首先进入了系统,我认为第一个事情要做的就是搭建最新版本的GCC编译器。因为后续要安装的都需要编译,如果你下载的包或软件是二进制的话,可以不用编译。代码如下:
# 安装环境依赖
yum install glibc-headers gcc-c++ gcc gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel
#下载新版本gcc 我选的是gcc12.2.0
wget http://mirror.hust.edu.cn/gnu/gcc/gcc-9.3.0/gcc-12.2.0.tar.gz
tar -zxvf gcc-12.2.0.tar.gz
cd gcc-12.2.0
./contrib/download_prerequisites #下载依赖包
mkdir build #创建文件夹
cd build
../configure --prefix=/usr/local/gcc-12.2.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib #configure –help输出详细的选项列表。其中--prefix选项是配置安装的路径。你也可以不配置
make&make install #编译和安装 这一步时间等的有些长,建议不要在SSH下执行,我后面在服务器上直接执行。
#删除旧版本gcc
yum remove gcc
#.将新版本的gcc加入命令搜索路径中:
ln -s /usr/local/gcc-12.2.0/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-12.2.0/bin/g++ /usr/bin/g++
然后就是加入环境变量,有三种方法,注意,我们加入系统的吧
vim /etc/profile # 打开文件,加入以下代码:
# gcc
LD_LIBRARY_PATH=/usr/local/gcc-12.2.0/lib
#export LD_LIBRARY_PATH
#然后要退出,执行生效
source /etc/profile
#最后我要更新库文件 更换libstdc++.so.6
cp /usr/local/gcc-12.2.0/lib64/libstdc++.so.6.0.30 /usr/lib64/libstdc++.so.6.0.30
rm -f /usr/lib64/libstdc++.so.6
ln -s /usr/lib64/libstdc++.so.6.0.30 /usr/lib64/libstdc++.so.6
下面开始安装最新版本的R 安装方法见:https://www.jianshu.com/p/533486c412e3
但是发现了装了R后,gcc依耐安装问题,还是回到了旧版本。
好,我在这里把他强制替换吧,希望系统不要奔溃,gcc真搞死人,
ln -sf /usr/local/gcc-12.2.0/bin/gcc /usr/bin/gcc
ln -sf /usr/local/gcc-12.2.0/bin/g++ /usr/bin/g++
这时通常会报错没有libgforran库文件 ,我们安装然后指向他就行
yum install libgfortran5
ln -s /usr/lib64/libgfortran.so.5 /usr/lib/libgfortran.so