我有一台相对较旧的服务器,上面装有 CentOS 6。默认 gcc 是 4.4.7,但经过一番谷歌搜索后,我发现我可以通过 更新它devtoolset-7
。我devtoolset-7
通过 root (即sudo -i
) 安装,并且安装正常。
然后我照做了scl enable devtoolkit-7 bash
,但似乎没有任何效果。
[affan@abm-lab ~]$ gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[affan@abm-lab ~]$ scl enable devtoolset-7 bash
[affan@abm-lab ~]$ gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
有人知道为什么scl
没有启用具有适当变量设置的子环境吗?
答案1
我也遇到了这个问题。我不知道为什么scl
无法启用环境,但我能够让它加载source /opt/rh/devtoolset-7/enable
。
答案2
这是由于您在 .bashrc 和/或 .bash_profile 中的设置。scl 在启动新的 bash shell 之前将其路径附加到 gcc7,但 gcc 的路径再次默认为旧的 gcc4,因为您的 .bashrc 在启动新的 bash 时将 /usr/bin 附加到路径,并且它取代了 scl 设置。解决方案是直接使用“enable”脚本。这样就不会再有路径设置让您烦恼了。