如何安装更高版本的 gcc(但不作为默认版本)?

如何安装更高版本的 gcc(但不作为默认版本)?

我正在使用 Ubuntu 16.04 LTS,其中默认 C 编译器是“gcc(Ubuntu 5.4.0-6ubuntu1~16.04.5)5.4.0 20160609”。

通常情况下,我不会升级我的 C 编译器,除非我要升级整个操作系统或通过软件更新收到升级通知。

但是,对于我测试 Perl 5 核心发行版的工作,我需要能够评估其他贡献者在 C 编译器为 gcc-7.2 的情况下运行的冒烟测试结果。因此,我想安装 gcc-7.2,但不要让它成为我的默认 C 编译器。我只想在需要执行一项特定任务时使用它。

在这样的链接处:

如何在 Ubuntu 上安装 g++-7?

...我找到了直接升级到 gcc-7.* 的说明,但我并不真正想升级;我只是想要一个备用安装。

有可能做到这一点吗?如果可以,怎么做?

非常感谢。

答案1

gcc-7从PPA安装toolchain-r应该不是影响您的默认安装gcc- 它将安装/usr/bin/gcc-7所有支持文件,但不会符号链接/usr/bin/gcc到它。

例如,给定

$ gcc --version
gcc (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904
Copyright (C) 2015 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.

$ gcc-7 --version
No command 'gcc-7' found, did you mean:
 Command 'gcc-6' from package 'gccgo-6' (main)
 Command 'gcc-5' from package 'gcc-5' (main)
 Command 'gcc-5' from package 'hardening-wrapper' (universe)
gcc-7: command not found

然后

$ apt-cache policy gcc-7
gcc-7:
  Installed: (none)
  Candidate: 7.2.0-1ubuntu1~16.04
  Version table:
     7.2.0-1ubuntu1~16.04 500
        500 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial/main amd64 Packages

$ sudo apt install gcc-7

结果是

$ apt-cache policy gcc-7
gcc-7:
  Installed: 7.2.0-1ubuntu1~16.04
  Candidate: 7.2.0-1ubuntu1~16.04
  Version table:
 *** 7.2.0-1ubuntu1~16.04 500
        500 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial/main amd64 Packages
        100 /var/lib/dpkg/status

$ gcc-7 --version
gcc-7 (Ubuntu 7.2.0-1ubuntu1~16.04) 7.2.0
Copyright (C) 2017 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.

$ gcc --version
gcc (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904
Copyright (C) 2015 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.

相关内容