我正在使用 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 编译器。我只想在需要执行一项特定任务时使用它。
在这样的链接处:
...我找到了直接升级到 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.