关于安装xgboost中升级cmake和gcc的步骤(无编译)

在CentOS7上安装xgboost时遇到错误,原因是cmake和gcc版本过低。解决方案包括:1) 下载并安装cmake3.15.0;2) 升级gcc到5.0及以上版本,通过软链接指向devtoolset-8的gcc。完成升级后,再尝试使用pip安装xgboost。
摘要由CSDN通过智能技术生成

在centos7上安装xgboost的时候遇到这样的问题:

File "/usr/local/lib/python3.5/subprocess.py", line 271, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['cmake', 'xgboost', '-GUnix Makefiles', '-DUSE_OPENMP=1', '-DUSE_AZURE=0', '-DBUILD_WITH_SHARED_NCCL=0', '-DUSE_HDFS=0', '-DHIDE_CXX_SYMBOLS=1', '-DUSE_CUDA=0', '-DPLUGIN_LZ4=0', '-DUSE_S3=0', '-DPLUGIN_DENSE_PARSER=0', '-DUSE_NCCL=0']' returned non-zero exit status 1
    
    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-as6kfgv9/xgboost/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-7zuj1muf/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-as6kfgv9/xgboost

在这里插入图片描述这种情况是因为xgboost的安装依赖于cmake和gcc编译器,如果版本不够新的话就会报错,而安装xgboost1.1.0以上版本需要cmake3.13.0和gcc5.0版本。
一、升级cmake
下载文件https://cmake.org/files/v3.15/cmake-3.15.0-rc1-Linux-x86_64.tar.gz
下载好之后解压到/usr/local,并且重命名为cmake-3.15.0

tar -xzvf cmake-3.15.0-rc1-Linux-x86_64.tar.gz
mv cmake cmake-3.15.0-rc1-Linux-x86_64 cmake-3.15.0

将原软链接备份后,增加新的软链接

mv /usr/bin/cmake /usr/bin/cmake.bak
ln -s /usr/local/cmake-3.15.0/bin/cmake /usr/bin/cmake

即可。可以使用cmake --version查询cmake的版本检查是否已经更新
二、升级gcc
这里参考了该博客CentOS 7升级gcc版本
主要步骤为:
安装centos-release-scl和devtoolset

yum install centos-release-scl
yum install devtoolset-8-gcc*

安装的devtoolset是在 /opt/sh 目录下的,所以将gcc、g++、c++的软链接全部替换为devtoolset目录里的内容

mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++-4.8.5
mv /usr/bin/c++ /usr/bin/c++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/c++ /usr/bin/c++

检查gcc、g++、c++版本(举例gcc,其他同)

gcc --version

若更新成功应如下:
在这里插入图片描述三、安装xgboost

pip install xgboost

安装成功如下:
在这里插入图片描述总结:千万不要随便去编译安装,我在服务器升级gcc安装xgboost很快就完成了,而自己电脑虚拟机上升级gcc,因为用的编译安装(使用的make -j4),安装了整整4个多小时还没有编译完成,简直坑啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值