赞
踩
事情发生的原因:
本想使用llama.cpp对模型量化,结果对包进行make的时候出现“stdatomic.h:没有那个文件或目录”的bug,搜索发现是gcc版本太低了,gcc -v发现版本是4.8.5。
于是按理说应该执行以下命令升级gcc:
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
source /etc/profile
但是问题在于install centos-release-scl时显示我已经安装了最新的版本,但是安装devtoolset时显示没有“没有可用软件包 devtoolset-9-gcc-c++…”,yum search时一个版本也搜索不到,找遍了全网试过所有方法,比如换源,比如不输入yum -y,比如我也想不起来了,反正基本都用过了,当然这个问题的相关内容也比较少。
都准备下原始包来手动编译了,不信邪。严重怀疑自己的的centos-release-scl存在问题,因为我scl -list查不到任何包。
后来发现根据这个文章:
介绍centos的软件仓储repos
看到了这样一段话:
执行命令#yum install centos-release-scl安装SCL的配置工具包,安装完成之后修改/etc/yum.repos.d/CentOS-SCLo-scl.repo, /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo文件,同样可以使用http://mirrors.tuna.tsinghua.edu.cn的镜像。
很有意思,本来想进入/etc/yum.repos.d来更改这两个repo文件,结果发现,我压根就没有!所以没有这两个文件,我又怎么可能搜索到东西呢?咱也不知道为什么显示的是centos-release-scl是最新版本,无需任何操作,但是又没有这两个repo。
于是最终解决方案:
1.查看你安装的scl
yum list installed|grep "scl"
2.删除scl
yum remove centos-release-scl.noarch
yum remove centos-release-scl-rh.noarch
3.重新安装
yum install -y centos-release-scl centos-release-scl-rh
4.按照正常步骤安装devtoolset即可
yum install -y scl-utils scl-utils-build
yum -y install devtoolset-9-gcc* # 或者下一行也行
#yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
至此,事情解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。