我可以访问 CentOS 7 的集群,其中安装了 gcc。不幸的是,gcc 版本相当旧(4.8),并且据报告我正在使用的一些 Python 包不兼容,需要版本 >5.0。但是,由于我没有 root 权限,因此我无法轻松地安装/删除那里的任何内容。
我遵循了堆栈交换的一些答案,从源代码安装了 gcc 8.4。看来make install
是成功了。
然后,我在这里遵循了一个问题的公认答案(如何为一个用户设置默认的gcc版本?) 更改默认值。但是,它对我不起作用。
- gcc 8.4 位于
$HOME/gcc_8_4
带有(看似正常工作)符号链接的位置$HOME/bin/gcc
。 - gcc 4.8 位于
/usr/local/bin
. $HOME/bin
来了前/usr/local/bin
中PATH
,如上述答案中所写。- 如果我
./gcc --version
从$HOME/bin/gcc/bin
目录调用,我会得到版本 8.4。如果我从任何位置调用它gcc --version
,我仍然会得到 4.8。
那么,自该答案发布以来,有什么变化吗?为什么 4.8 版本是在 8.4 版本之后出现的,却被视为默认版本PATH
?有什么办法可以解决这个问题吗?
答案1
没有足够的声誉来发表评论,但在你的第 4 点中,它说$HOME/bin/gcc/bin
。这是正确的,还是你的意思$HOME/bin/
?
如果前者是正确的,那么您的PATH
显然是不正确的,因为它不包含gcc/bin
子目录,并且看起来您可能在符号链接时添加了额外的子目录层(子目录gcc/
)$HOME/bin
。
在这种情况下,要么删除额外的层(将$HOME/gcc_8_4/
目录中的所有可执行文件符号链接到$HOME/bin
,要么调整您的PATH
以包含$HOME/bin/gcc/bin
.