Ubuntu高版本如何安装低版本GCC (以Ubuntu 22.04安装GCC5为例)

默认安装GCC

通过如下命令安装的gcc版本太高

1
2
3
sudo apt update
sudo apt install build-essential # 安装 GCC、G++ 和 make 等工具
# sudo apt install gcc #只安装gcc

使用gcc --version查看gcc版本

image-20240125212138862

添加源

如果想用低版本的gcc,比如gcc5,尝试输入命令 sudo apt-get install gcc-5。会提示找不到gcc5的安装包,那么就需要添加较低版本的源。

网上搜索得到gcc5对应的Ubuntu版本为16,接下来就对Ubuntu22.04的源文件source.list进行编辑,增加Ubuntu16的源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo gedit /etc/apt/sources.list #通过命令用gedit编辑器(也选择其他编辑器,如vim,mousepad等)打开sources.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

保存文件后,输入命令更新源 sudo apt-get update

如果出现如下错误:

这个错误发生是因为你的系统缺少用于验证 Ubuntu 软件包的公钥。APT 包管理器使用这些公钥来确保软件包的真实性。解决这个问题的方法是导入缺失的公钥。

image-20240125212732828

使用如下命令

1
2
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

然后再更新源 sudo apt-get update

安装低版本

查看gcc5可选的版本 apt-cache policy gcc-5

选择其中一个版本进行安装sudo apt-get install gcc-5=5.4.0-6ubuntu1~16.04.12
g++5的安装是类似的步骤

设置默认版本

然后查看gcc版本 gcc -v,发现版本并没有改变
通过命令ls /usr/bin/gcc*查询本机gcc已安装的版本

image-20240125213711285

这个时候需要管理多版本的gcc,使我们想要的gcc5成为默认版本

1
2
3
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 50 # 11为你系统安装的版本
sudo update-alternatives --config gcc

image-20240125214109116

根据提示,选择gcc-5对应的编号1 回车即可

最后gcc -v查看默认gcc版本,此时已经切换为gcc5

image-20240125214139258

如果要对g++的多版本进行管理,只需将上面命令行中的gcc替换为g++