如何在 CentOS 7 上无需 root 更改 gcc 版本

如何在 CentOS 7 上无需 root 更改 gcc 版本

我可以访问 CentOS 7 的集群,其中安装了 gcc。不幸的是,gcc 版本相当旧(4.8),并且据报告我正在使用的一些 Python 包不兼容,需要版本 >5.0。但是,由于我没有 root 权限,因此我无法轻松地安装/删除那里的任何内容。

我遵循了堆栈交换的一些答案,从源代码安装了 gcc 8.4。看来make install是成功了。

然后,我在这里遵循了一个问题的公认答案(如何为一个用户设置默认的gcc版本?) 更改默认值。但是,它对我不起作用。

  1. gcc 8.4 位于$HOME/gcc_8_4带有(看似正常工作)符号链接的位置$HOME/bin/gcc
  2. gcc 4.8 位于/usr/local/bin.
  3. $HOME/bin来了 /usr/local/binPATH,如上述答案中所写。
  4. 如果我./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.

相关内容