Ubuntu多版本(低版本)gcc/g++安装、切换与卸载图文教程
CSDN 2024-07-02 08:37:09 阅读 83
目录
1 问题背景2 多版本安装3 多版本切换4 多版本卸载5 其他问题
1 问题背景
环境:
gcc 9.4.0g++ 9.4.0Ubuntu20.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
源,具体地
sudo vim /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.04
:jammy
gcc-11
Ubuntu 20.04
:focal
gcc-9
Ubuntu 18.04
:bionic
gcc-7
Ubuntu 16.04
:xenial
gcc-5
接着更新软件缓存并再次查找gcc-5
缓存
sudo apt-get update
apt-cache policy gcc-5
选择其中一个版本进行安装即可
sudo apt-get install gcc-5=5.4.0-6ubuntu1~16.04.12
sudo apt-get install g++-5=5.4.0-6ubuntu1~16.04.12
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-9 50
sudo update-alternatives --config gcc
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 40
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 50
sudo 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 source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
4 多版本卸载
终端输入
sudo apt purge --autoremove -y gcc-5 g++-5
即可。其他版本同理
5 其他问题
公钥缺失:
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 3B4FE6ACC0B21F32
E: 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 40976EAF437D05B5
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
🔥 更多精彩专栏:
《ROS从入门到精通》《Pytorch深度学习实战》《机器学习强基计划》《运动规划实战精讲》…
👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇
下一篇: docker介绍说明,docker配置代理加速器、docker使用国内镜像仓库
本文标签
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。