0


Ubuntu多版本(低版本)gcc/g++安装、切换与卸载图文教程

目录

1 问题背景

环境:

  • gcc 9.4.0
  • g++ 9.4.0
  • Ubuntu20.04

现象:通过

apt install build-essential

安装的

gcc

g++

默认是当前版本系统支持的最高版本编译器,但是很多工程的编译需要安装低版本

2 多版本安装

终端输入

apt-cache policy gcc-9

在这里插入图片描述
可以发现有不少

gcc-9

的发行版可供下载。假设我们需要安装

gcc-5

,输入

apt-cache policy gcc-5

发现

在这里插入图片描述
所以此时直接安装会显示

E: Package 'gcc-5' has no installation candidate

。本质原因在于,

Ubuntu 20.04

使用的软件源只包含

gcc-9

而没有

gcc-5

gcc-5

存在于更低版本的

Ubuntu

源中。那么解决方案就是添加低版本的

Ubuntu

源,具体地

sudovim /etc/apt/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

上面源中每一行中的xenial标识为ubuntu16.04,若为其他版本Ubuntu,将对应xenial改为其他版本标识,常用的Ubuntu版本代号如下:

  • Ubuntu 22.04jammy``````gcc-11
  • Ubuntu 20.04focal``````gcc-9
  • Ubuntu 18.04bionic``````gcc-7
  • Ubuntu 16.04xenial``````gcc-5

接着更新软件缓存并再次查找

gcc-5

缓存

sudoapt-get update
apt-cache policy gcc-5

在这里插入图片描述
选择其中一个版本进行安装即可

sudoapt-getinstall gcc-5=5.4.0-6ubuntu1~16.04.12
sudoapt-getinstall g++-5=5.4.0-6ubuntu1~16.04.12

3 多版本切换

通过设置不同版本的优先级实现切换

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50sudo update-alternatives --config gcc

在这里插入图片描述

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 40sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 50sudo update-alternatives --config g++

此时再输入

gcc --version

实现了从

gcc-9

gcc-5

的切换

gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12)5.4.0 20160609
Copyright (C)2015 Free Software Foundation, Inc.
This is free software; see the sourcefor copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

4 多版本卸载

终端输入

sudoapt purge --autoremove-y gcc-5 g++-5

即可。其他版本同理

5 其他问题

  1. 公钥缺失:W: GPG error: http://mirrors.aliyun.com/ubuntu xenial InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32E: The repository 'http://mirrors.aliyun.com/ubuntu xenial InRelease' is not signed.N: Updating from such a repository can't be done securely, and is therefore disabled by default.N: See apt-secure(8) manpage for repository creation and user configuration details.解决方案:根据报错信息NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32导入对应公钥即可sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

🔥 更多精彩专栏

  • 《ROS从入门到精通》

  • 《Pytorch深度学习实战》

  • 《机器学习强基计划》

  • 《运动规划实战精讲》

  • 👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇

标签: ubuntu linux 运维

本文转载自: https://blog.csdn.net/FRIGIDWINTER/article/details/138393473
版权归原作者 Mr.Winter` 所有, 如有侵权,请联系我们删除。

“Ubuntu多版本(低版本)gcc/g++安装、切换与卸载图文教程”的评论:

还没有评论