1 添加软件源

sudo gedit /ect/apt/source.list

在末尾添加以下内容

deb http://mirrors.aliyun.com/ubuntu/ xenial main

deb-src http://mirrors.aliyun.com/ubuntu/ xenial main

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main

deb http://mirrors.aliyun.com/ubuntu/ xenial universe

deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main

deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

2 安装公钥

由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

3 安装 gcc-5 g+±5

sudo apt-get install gcc-5 g++-5 -y

4 更换优先级

因为安装了多个gcc , 系统默认使用的与想使用的不一致, 就需要指定他们的优先级

# 查看gcc 版本

ls /usr/bin/gcc*

# 指定优先级

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50

# 选择版本版本

sudo update-alternatives --config gcc

# 用相同的方法更换g++版本

xiaole@ubt:~$ ls /usr/bin/gcc*

/usr/bin/gcc /usr/bin/gcc-9 /usr/bin/gcc-ar-5 /usr/bin/gcc-nm /usr/bin/gcc-nm-9 /usr/bin/gcc-ranlib-5

/usr/bin/gcc-5 /usr/bin/gcc-ar /usr/bin/gcc-ar-9 /usr/bin/gcc-nm-5 /usr/bin/gcc-ranlib /usr/bin/gcc-ranlib-9

xiaole@ubt:~$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50

update-alternatives: 使用 /usr/bin/gcc-9 来在自动模式中提供 /usr/bin/gcc (gcc)

xiaole@ubt:~$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50

xiaole@ubt:~$ sudo update-alternatives --config gcc

有 2 个候选项可用于替换 gcc (提供 /usr/bin/gcc)。

选择 路径 优先级 状态

------------------------------------------------------------

* 0 /usr/bin/gcc-9 50 自动模式

1 /usr/bin/gcc-5 50 手动模式

2 /usr/bin/gcc-9 50 手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:1

update-alternatives: 使用 /usr/bin/gcc-5 来在手动模式中提供 /usr/bin/gcc (gcc)

xiaole@ubt:~$

xiaole@ubt:~$ ls /usr/bin/g++*

/usr/bin/g++ /usr/bin/g++-5 /usr/bin/g++-9

xiaole@ubt:~$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 50

update-alternatives: 使用 /usr/bin/g++-9 来在自动模式中提供 /usr/bin/g++ (g++)

xiaole@ubt:~$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50

xiaole@ubt:~$ sudo update-alternatives --config g++

有 2 个候选项可用于替换 g++ (提供 /usr/bin/g++)。

选择 路径 优先级 状态

------------------------------------------------------------

* 0 /usr/bin/g++-9 50 自动模式

1 /usr/bin/g++-5 50 手动模式

2 /usr/bin/g++-9 50 手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:1

update-alternatives: 使用 /usr/bin/g++-5 来在手动模式中提供 /usr/bin/g++ (g++)

xiaole@ubt:~$ gcc -v

Using built-in specs.

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper

Target: x86_64-linux-gnu

Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu

Thread model: posix

gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)

5 软件安装终端记录

xiaole@ubt:~$ sudo apt-get update

获取:1 http://mirrors.aliyun.com/ubuntu xenial InRelease [247 kB]

命中:2 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal InRelease

命中:3 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates InRelease

获取:4 http://mirrors.aliyun.com/ubuntu xenial-updates InRelease [99.8 kB]

命中:5 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports InRelease

错误:1 http://mirrors.aliyun.com/ubuntu xenial InRelease

由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

命中:6 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security InRelease

获取:7 http://mirrors.aliyun.com/ubuntu xenial-security InRelease [99.8 kB]

错误:4 http://mirrors.aliyun.com/ubuntu xenial-updates InRelease

由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

错误:7 http://mirrors.aliyun.com/ubuntu xenial-security InRelease

由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

正在读取软件包列表... 完成

W: GPG 错误:http://mirrors.aliyun.com/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

E: 仓库 “http://mirrors.aliyun.com/ubuntu xenial InRelease” 没有数字签名。

N: 无法安全地用该源进行更新,所以默认禁用该源。

N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。

W: GPG 错误:http://mirrors.aliyun.com/ubuntu xenial-updates InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

E: 仓库 “http://mirrors.aliyun.com/ubuntu xenial-updates InRelease” 没有数字签名。

N: 无法安全地用该源进行更新,所以默认禁用该源。

N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。

W: GPG 错误:http://mirrors.aliyun.com/ubuntu xenial-security InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

E: 仓库 “http://mirrors.aliyun.com/ubuntu xenial-security InRelease” 没有数字签名。

N: 无法安全地用该源进行更新,所以默认禁用该源。

N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。

xiaole@ubt:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

Executing: /tmp/apt-key-gpghome.RftvAUahZx/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

gpg: 密钥 3B4FE6ACC0B21F32:公钥 “Ubuntu Archive Automatic Signing Key (2012) ” 已导入

gpg: 处理的总数:1

gpg: 已导入:1

xiaole@ubt:~$ sudo apt-get update

获取:1 http://mirrors.aliyun.com/ubuntu xenial InRelease [247 kB]

获取:2 http://mirrors.aliyun.com/ubuntu xenial-updates InRelease [99.8 kB]

获取:3 http://mirrors.aliyun.com/ubuntu xenial-security InRelease [99.8 kB]

命中:4 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal InRelease

命中:5 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates InRelease

命中:6 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports InRelease

命中:7 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security InRelease

获取:8 http://mirrors.aliyun.com/ubuntu xenial/main Sources [868 kB]

获取:9 http://mirrors.aliyun.com/ubuntu xenial/universe Sources [7,728 kB]

获取:10 http://mirrors.aliyun.com/ubuntu xenial/main i386 Packages [1,196 kB]

获取:11 http://mirrors.aliyun.com/ubuntu xenial/main amd64 Packages [1,201 kB]

获取:12 http://mirrors.aliyun.com/ubuntu xenial/main Translation-en [568 kB]

获取:13 http://mirrors.aliyun.com/ubuntu xenial/main Translation-zh_CN [74.8 kB]

获取:14 http://mirrors.aliyun.com/ubuntu xenial/main amd64 DEP-11 Metadata [733 kB]

获取:15 http://mirrors.aliyun.com/ubuntu xenial/main DEP-11 64x64 Icons [409 kB]

获取:16 http://mirrors.aliyun.com/ubuntu xenial/universe amd64 Packages [7,532 kB]

获取:17 http://mirrors.aliyun.com/ubuntu xenial/universe i386 Packages [7,512 kB]

获取:18 http://mirrors.aliyun.com/ubuntu xenial/universe Translation-zh_CN [172 kB]

获取:19 http://mirrors.aliyun.com/ubuntu xenial/universe Translation-en [4,354 kB]

获取:20 http://mirrors.aliyun.com/ubuntu xenial/universe amd64 DEP-11 Metadata [3,410 kB]

获取:21 http://mirrors.aliyun.com/ubuntu xenial/universe DEP-11 64x64 Icons [7,448 kB]

获取:22 http://mirrors.aliyun.com/ubuntu xenial-updates/universe Sources [445 kB]

获取:23 http://mirrors.aliyun.com/ubuntu xenial-updates/main Sources [537 kB]

获取:24 http://mirrors.aliyun.com/ubuntu xenial-updates/main i386 Packages [1,525 kB]

获取:25 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 Packages [2,049 kB]

获取:26 http://mirrors.aliyun.com/ubuntu xenial-updates/main Translation-en [461 kB]

获取:27 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 DEP-11 Metadata [327 kB]

获取:28 http://mirrors.aliyun.com/ubuntu xenial-updates/main DEP-11 48x48 Icons [27.5 kB]

获取:29 http://mirrors.aliyun.com/ubuntu xenial-updates/main DEP-11 64x64 Icons [258 kB]

获取:30 http://mirrors.aliyun.com/ubuntu xenial-updates/main DEP-11 64x64@2 Icons [29 B]

获取:31 http://mirrors.aliyun.com/ubuntu xenial-updates/universe amd64 Packages [1,220 kB]

获取:32 http://mirrors.aliyun.com/ubuntu xenial-updates/universe i386 Packages [1,087 kB]

获取:33 http://mirrors.aliyun.com/ubuntu xenial-updates/universe Translation-en [359 kB]

获取:34 http://mirrors.aliyun.com/ubuntu xenial-updates/universe amd64 DEP-11 Metadata [280 kB]

获取:35 http://mirrors.aliyun.com/ubuntu xenial-updates/universe DEP-11 48x48 Icons [35.3 kB]

获取:36 http://mirrors.aliyun.com/ubuntu xenial-updates/universe DEP-11 64x64 Icons [442 kB]

获取:37 http://mirrors.aliyun.com/ubuntu xenial-updates/universe DEP-11 64x64@2 Icons [29 B]

获取:38 http://mirrors.aliyun.com/ubuntu xenial-security/main Sources [252 kB]

获取:39 http://mirrors.aliyun.com/ubuntu xenial-security/universe Sources [211 kB]

获取:40 http://mirrors.aliyun.com/ubuntu xenial-security/main amd64 Packages [1,648 kB]

获取:41 http://mirrors.aliyun.com/ubuntu xenial-security/main i386 Packages [1,160 kB]

获取:42 http://mirrors.aliyun.com/ubuntu xenial-security/main Translation-en [360 kB]

获取:43 http://mirrors.aliyun.com/ubuntu xenial-security/main amd64 DEP-11 Metadata [93.7 kB]

获取:44 http://mirrors.aliyun.com/ubuntu xenial-security/main DEP-11 48x48 Icons [27.5 kB]

获取:45 http://mirrors.aliyun.com/ubuntu xenial-security/main DEP-11 64x64 Icons [116 kB]

获取:46 http://mirrors.aliyun.com/ubuntu xenial-security/main DEP-11 64x64@2 Icons [29 B]

获取:47 http://mirrors.aliyun.com/ubuntu xenial-security/universe i386 Packages [665 kB]

获取:48 http://mirrors.aliyun.com/ubuntu xenial-security/universe amd64 Packages [786 kB]

获取:49 http://mirrors.aliyun.com/ubuntu xenial-security/universe Translation-en [226 kB]

获取:50 http://mirrors.aliyun.com/ubuntu xenial-security/universe amd64 DEP-11 Metadata [130 kB]

获取:51 http://mirrors.aliyun.com/ubuntu xenial-security/universe DEP-11 48x48 Icons [9,163 B]

获取:52 http://mirrors.aliyun.com/ubuntu xenial-security/universe DEP-11 64x64 Icons [206 kB]

获取:53 http://mirrors.aliyun.com/ubuntu xenial-security/universe DEP-11 64x64@2 Icons [29 B]

已下载 58.1 MB,耗时 1分 5秒 (896 kB/s)

Can not add an empty (zero-length) key to the cache

正在读取软件包列表... 完成

xiaole@ubt:~$

xiaole@ubt:~$ sudo apt-get install gcc-5 g++-5 -y

正在读取软件包列表... 完成

正在分析软件包的依赖关系树

正在读取状态信息... 完成

下列软件包是自动安装的并且现在不需要了:

linux-headers-5.15.0-67-generic linux-hwe-5.15-headers-5.15.0-67 linux-image-5.15.0-67-generic linux-modules-5.15.0-67-generic linux-modules-extra-5.15.0-67-generic

使用'sudo apt autoremove'来卸载它(它们)。

将会同时安装下列软件:

cpp-5 gcc-5-base gcc-7-base libasan2 libcilkrts5 libgcc-5-dev libisl15 libmpfr4 libmpx0 libstdc++-5-dev libubsan0

建议安装:

gcc-5-locales g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-5-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx0-dbg

libquadmath0-dbg libstdc++-5-doc

下列【新】软件包将被安装:

cpp-5 g++-5 gcc-5 gcc-5-base gcc-7-base libasan2 libcilkrts5 libgcc-5-dev libisl15 libmpfr4 libmpx0 libstdc++-5-dev libubsan0

升级了 0 个软件包,新安装了 13 个软件包,要卸载 0 个软件包,有 98 个软件包未被升级。

需要下载 29.7 MB 的归档。

解压缩后会消耗 102 MB 的额外空间。

获取:1 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 gcc-5-base amd64 5.4.0-6ubuntu1~16.04.12 [17.4 kB]

获取:2 http://mirrors.aliyun.com/ubuntu xenial/main amd64 libisl15 amd64 0.16.1-1 [524 kB]

获取:3 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe amd64 gcc-7-base amd64 7.5.0-6ubuntu2 [18.5 kB]

获取:4 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe amd64 libubsan0 amd64 7.5.0-6ubuntu2 [126 kB]

获取:5 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe amd64 libcilkrts5 amd64 7.5.0-6ubuntu2 [42.7 kB]

获取:6 http://mirrors.aliyun.com/ubuntu xenial/main amd64 libmpfr4 amd64 3.1.4-1 [191 kB]

获取:7 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 cpp-5 amd64 5.4.0-6ubuntu1~16.04.12 [7,783 kB]

获取:8 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 libasan2 amd64 5.4.0-6ubuntu1~16.04.12 [265 kB]

获取:9 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 libmpx0 amd64 5.4.0-6ubuntu1~16.04.12 [9,762 B]

获取:10 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 libgcc-5-dev amd64 5.4.0-6ubuntu1~16.04.12 [2,239 kB]

获取:11 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 gcc-5 amd64 5.4.0-6ubuntu1~16.04.12 [8,612 kB]

获取:12 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 libstdc++-5-dev amd64 5.4.0-6ubuntu1~16.04.12 [1,428 kB]

获取:13 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 g++-5 amd64 5.4.0-6ubuntu1~16.04.12 [8,430 kB]

已下载 29.7 MB,耗时 31秒 (945 kB/s)

正在选中未选择的软件包 gcc-5-base:amd64。

(正在读取数据库 ... 系统当前共安装有 286746 个文件和目录。)

准备解压 .../00-gcc-5-base_5.4.0-6ubuntu1~16.04.12_amd64.deb ...

正在解压 gcc-5-base:amd64 (5.4.0-6ubuntu1~16.04.12) ...

正在选中未选择的软件包 libisl15:amd64。

准备解压 .../01-libisl15_0.16.1-1_amd64.deb ...

正在解压 libisl15:amd64 (0.16.1-1) ...

正在选中未选择的软件包 libmpfr4:amd64。

准备解压 .../02-libmpfr4_3.1.4-1_amd64.deb ...

正在解压 libmpfr4:amd64 (3.1.4-1) ...

正在选中未选择的软件包 cpp-5。

准备解压 .../03-cpp-5_5.4.0-6ubuntu1~16.04.12_amd64.deb ...

正在解压 cpp-5 (5.4.0-6ubuntu1~16.04.12) ...

正在选中未选择的软件包 libasan2:amd64。

准备解压 .../04-libasan2_5.4.0-6ubuntu1~16.04.12_amd64.deb ...

正在解压 libasan2:amd64 (5.4.0-6ubuntu1~16.04.12) ...

正在选中未选择的软件包 gcc-7-base:amd64。

准备解压 .../05-gcc-7-base_7.5.0-6ubuntu2_amd64.deb ...

正在解压 gcc-7-base:amd64 (7.5.0-6ubuntu2) ...

正在选中未选择的软件包 libubsan0:amd64。

准备解压 .../06-libubsan0_7.5.0-6ubuntu2_amd64.deb ...

正在解压 libubsan0:amd64 (7.5.0-6ubuntu2) ...

正在选中未选择的软件包 libcilkrts5:amd64。

准备解压 .../07-libcilkrts5_7.5.0-6ubuntu2_amd64.deb ...

正在解压 libcilkrts5:amd64 (7.5.0-6ubuntu2) ...

正在选中未选择的软件包 libmpx0:amd64。

准备解压 .../08-libmpx0_5.4.0-6ubuntu1~16.04.12_amd64.deb ...

正在解压 libmpx0:amd64 (5.4.0-6ubuntu1~16.04.12) ...

正在选中未选择的软件包 libgcc-5-dev:amd64。

准备解压 .../09-libgcc-5-dev_5.4.0-6ubuntu1~16.04.12_amd64.deb ...

正在解压 libgcc-5-dev:amd64 (5.4.0-6ubuntu1~16.04.12) ...

正在选中未选择的软件包 gcc-5。

准备解压 .../10-gcc-5_5.4.0-6ubuntu1~16.04.12_amd64.deb ...

正在解压 gcc-5 (5.4.0-6ubuntu1~16.04.12) ...

正在选中未选择的软件包 libstdc++-5-dev:amd64。

准备解压 .../11-libstdc++-5-dev_5.4.0-6ubuntu1~16.04.12_amd64.deb ...

正在解压 libstdc++-5-dev:amd64 (5.4.0-6ubuntu1~16.04.12) ...

正在选中未选择的软件包 g++-5。

准备解压 .../12-g++-5_5.4.0-6ubuntu1~16.04.12_amd64.deb ...

正在解压 g++-5 (5.4.0-6ubuntu1~16.04.12) ...

正在设置 libmpfr4:amd64 (3.1.4-1) ...

正在设置 libisl15:amd64 (0.16.1-1) ...

正在设置 gcc-7-base:amd64 (7.5.0-6ubuntu2) ...

正在设置 gcc-5-base:amd64 (5.4.0-6ubuntu1~16.04.12) ...

正在设置 libcilkrts5:amd64 (7.5.0-6ubuntu2) ...

正在设置 libubsan0:amd64 (7.5.0-6ubuntu2) ...

正在设置 libmpx0:amd64 (5.4.0-6ubuntu1~16.04.12) ...

正在设置 cpp-5 (5.4.0-6ubuntu1~16.04.12) ...

正在设置 libasan2:amd64 (5.4.0-6ubuntu1~16.04.12) ...

正在设置 libgcc-5-dev:amd64 (5.4.0-6ubuntu1~16.04.12) ...

正在设置 libstdc++-5-dev:amd64 (5.4.0-6ubuntu1~16.04.12) ...

正在设置 gcc-5 (5.4.0-6ubuntu1~16.04.12) ...

正在设置 g++-5 (5.4.0-6ubuntu1~16.04.12) ...

正在处理用于 man-db (2.9.1-1) 的触发器 ...

正在处理用于 libc-bin (2.31-0ubuntu9.9) 的触发器 ...

xiaole@ubt:~$

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: