起因是博主需要安装apex,安装过程中报错,要求gcc版本5以上,而当前服务器gcc版本4.8.5。
由于博主无服务器root权限,只能通过源码方式安装。经过大半天的努力,最终成功安装了gcc5.1.0和apex。
首先下载相应版本gcc,如果存在网络问题,可以本地下载后上传到服务器,建议下载tar.gz后缀,可直接通过tar命令解压
tar zxvf gcc-5.1.0.tar.gz
解压后,进入gcc目录
cd gcc-5.1.0
输入如下命令,会自动下载并解压相应版本的gmp、mpfr、mpc、isl
./contrib/download_prerequisites
如果因为网络等问题,可采用如下地址进行下载:
下载时如果后缀为.tar.xz,采用如下命令解压
tar -xf gmp-6.2.1.tar.xz
接下来先编译安装gmp,首先进入gmp解压后的目录,然后再输入,其中'/home2/...'是你希望安装的路径
./configure --prefix=/home2/zxg/jlz/tools/gmp
报错,原因是没有安装m4
下载并解压以后,进入m4目录
./configure --prefix=/home2/zxg/jlz/tools
然后再依次输入
make
make install
安装成功,需要将软件安装路径加入PATH,打开配置文件
vim ~/.bashrc
添加以下内容(即 :安装路径/bin)
export PATH=$PATH:/home2/zxg/jlz/tools/bin
更新配置
source ~/.bashrc
然后再次进入gmp目录,通过如下命令安装成功
./configure --prefix=/home2/zxg/jlz/tools/gmp
make && make install
gmp如果不是安装在一些默认路径下,编译mpfr时仍然会报错找不到gmp.h,因此需要通过如下命令,读者应该可以发现--with-gmp-include和--with-gmp-lib就是我们的gmp安装路径下的include和lib文件夹。
./configure --prefix=/home2/zxg/jlz/tools/mpfr --with-gmp-include=/home2/zxg/jlz/tools/gmp/include --with-gmp-lib=/home2/zxg/jlz/tools/gmp/lib
make && make install
接下来安装mpc,同样先进入mpc的目录下,并且通过类似的命令加上mpfr的路径
./configure --prefix=/home2/zxg/jlz/tools/mpc --with-gmp-include=/home2/zxg/jlz/tools/gmp/include --with-gmp-lib=/home2/zxg/jlz/tools/gmp/lib --with-mpfr-include=/home2/zxg/jlz/tools/mpfr/include --with-mpfr-lib=/home2/zxg/jlz/tools/mpfr/lib
make && make install
然后是isl,进入相应目录下,这个即使添加了命令也始终无法找到gmp.h,又是一番呕心沥血。。。
对于gmp.h找不到,修改~/.bashrc,添加以下两行解决:
export CPLUS_INCLUDE_PATH=/home2/zxg/jlz/tools/gmp/include
export C_INCLUDE_PATH=/home2/zxg/jlz/tools/gmp/include
然后又出现了新的错误。解决不了。重来。
configure: error: gmp library not found
重来之后,发现中间这些步骤都没必要,在下述命令后,已经可以直接编译安装gcc了。。。(但是没有安装m4的话,可能会报错,可以按照前面的方法安装m4)
./contrib/download_prerequisites
依次输入命令:
mkdir gcc-build
cd gcc-build
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make #编译需要花很长时间
make DESTDIR=home2/zxg/jlz/tools/gcc-5.1.0 install
完成后配置环境变量并更新。
export PATH=/home2/zxg/jlz/tools/gcc-5.1.0/bin:$PATH
gcc -v可以看到版本已经变化。
因为博主要安装apex,接下来是安装apex的问题。
首先进入apex目录,然后输入
pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
大量的warning可以忽略,不影响安装,最后报错,
fatal error: ATen/cuda/DeviceUtils.cuh: No such file or directory
善用google,发现在apex仓库中有相同的issue,Issue链接,链接中包含了解决方案(下载旧版的apex进行安装即可),旧版链接。
当看到提示安装成功的时候,热泪盈眶QAQ
Running setup.py install for apex ... done
Successfully installed apex-0.1