一、前言
最近在安装 香港中文大学-商汤科技联合实验室开源的基于 PyTorch 的检测库——mmdetection时候发现gcc版本需要在4.9以上,但是考虑到实验室服务器集群上gcc的版本还是比较旧的,作为一个非root用户又没有操作权限,只能在自己的目录下面源码安装GCC了,在安装gcc 的时候也折腾许久,现将详细教程分享出来。
二、基本情况
1.GPU服务器系统:linux
2.联网情况:不连接外网
3.root权限:无
4.原gcc版本:4.8.5
三、任务
在不联网且无root权限情况下,将服务器上的gcc版本从4.8.5升级至5.4.0。
四、操作流程
1.获取GCC源码
1.从官网下载gcc源码到本地(个人情况是:window系统的笔记本电脑),然后将gcc源码上传至服务器。
gcc5.4.0下载地址:http://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.bz2
gcc其他版本的下载地址:http://ftp.gnu.org/gnu/gcc/
2.在服务器上进行解压:
tar -jxvpf gcc-5.4.0.tar.bz2
3.进入gcc文件夹,然后进行安装gcc操作。
cd gcc-5.4.0/
2.安装GCC
1.安装GCC需要依赖三个库:GMP, MPFR 和 MPC三个库。
如果可以在联网的情况下,我们直接运行如下命令即可以安装这三个库。
./contrib/download_prerequisites
如果读者和我一样无法连接外网的话,那就只能看看download_prerequisites这个脚本到底进行了什么操作。
根据download_prerequisites这个脚本可知道,其实就是执行了下载GMP, MPFR ,MPC和ISL这四个库,并进行解压链接的操作,那么,我们可以将下载的这几行命令注释掉,然后将这是个包分别下载下来上传至gcc的目录下即可。
下载地址:
ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.14.tar.bz2
ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
执行以下命令((无输出))
./contrib/download_prerequisites
然后分别执行以下命令(这个过程可能有点久):
mkdir objdir
cd objdir
../configure --disable-checking --enable-languages=c,c++,fortran --disable-multilib --prefix=/path/to/install/gcc-5.4 --enable-threads=posix
make -j && make install
/path/to/install/gcc-5.4这个是自己想要给gcc安装的目录,需要自己创建好。
3.配置环境变量
export PATH=/path/to/install/gcc-5.4/bin:$PATH
export LD_LIBRARY_PATH=/path/to/install/gcc-5.4/lib/:/path/to/install/gcc-5.4/lib64:$LD_LIBRARY_PATH
4.注意事项
由于这是在非root权限下进行操作的,所以配置环境变量只能在命令行进行配置,导致终端关闭之后,这个配置信息就会注销,所以每次需要用到新的gcc版本时,需要仔细配置环境变量那两行命令。(本人非root权限下无法vim /etc/profile进行添加环境变量)