1. 修改下载源

sudo vi /etc/apt/sources.list
# 在最后增加下面两行
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe

$ sudo apt update # 更新下载源
$ sudo apt-get install g++-4.9 # 安装g++-4.9

2. 添加和删除软连接, 修改默认版本 gcc/g++

# 添加软连接 将gcc-4.9/7 -> gcc
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 100
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 5

# 设置默认gcc版本为gcc
$ sudo update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-4.9 100 auto mode
1 /usr/bin/gcc-4.9 100 manual mode
2 /usr/bin/gcc-7 5 manual mode

# 添加g++软连接和设置默认版本
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 100
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 5
$ sudo update-alternatives --config g++

# 删除软连接
sudo update-alternatives --remove gcc /usr/bin/gcc-7

3. 命令介绍和测试

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 100

# 第一个参数: --install 表示向update-alternatives注册服务名。
# 第二个参数: 注册最终地址,成功后将会把命令在这个固定的目的地址做真实命令的软链,以后管理就是管理这个软链;
# 第三个参数: 服务名,以后管理时以它为关联依据。
# 第四个参数: 被管理的命令绝对路径。
# 第五个参数: 优先级,数字越大优先级越高。

# 测试
gcc -v
g++ -v