ubuntu 更新或更改GCC/G++

最近遇到一些问题,需要用到gcc-9/g++-9,但是我自带的ubuntu18.04是gcc-7.5/g++-7.5,所以升级一下,奈何文章太多而且很多无效,所以在此记录一下:

参考:https://stackoverflow.com/questions/19836858/upgrade-gcc-4-6-3-on-ubuntu-12-04-to-4-8-2

update-alternatives 是一个用于管理 Linux 系统中多个软件版本之间的符号链接的工具。它允许用户在多个安装的软件版本之间进行切换,使得系统可以轻松地在不同版本之间切换而无需手动更改符号链接。

bash 复制代码
# 1. Add the ppa by
sudo add-apt-repository ppa:ubuntu-toolchain-r/test

# 2. Install g++ and gcc (version 4.8),我安装的9,版本根据你实际的来
# sudo apt-get update; sudo apt-get install gcc-4.8 g++-4.8
sudo apt-get update; sudo apt-get install gcc-9 g++-9

# 3. Run the following commands one by one,
# 移除掉原有的所有管理器管理的版本, 没有可以跳过
sudo update-alternatives --remove-all gcc
sudo update-alternatives --remove-all g++
# 设置新的版本管理
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 20
# 更新管理器
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

gcc -v # 9.0输出
g++ -v # 9.0输出

如果你在第一步遇到:

bash 复制代码
aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Kylin/kylin

说明你可能是双系统或者多系统或者自己安装了什么软件把系统发行版本改了,需要修改回来:

bash 复制代码
sudo gedit /etc/lsb-release


# 粘贴到你的这个文件中去,具体的最后一行描述可以根据uname -a来看
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS
相关推荐
IT 小阿姨(数据库)18 分钟前
PgSQL监控死元组和自动清理状态的SQL语句执行报错ERROR: division by zero原因分析和解决方法
linux·运维·数据库·sql·postgresql·centos
THMAIL21 分钟前
量化股票从贫穷到财务自由之路 - 零基础搭建Python量化环境:Anaconda、Jupyter实战指南
linux·人工智能·python·深度学习·机器学习·金融
逍遥浪子~30 分钟前
docker实践(一)
运维·docker·容器
让子弹飞0239 分钟前
36.2Linux单总线驱动DS18B20实验(详细讲解代码)_csdn
linux·ubuntu·驱动的分离和分层
Yana.nice1 小时前
yum list 和 repoquery的区别
linux
AI云原生1 小时前
如何使用Docker快速运行Firefox并实现远程访问本地火狐浏览器的教程
运维·docker·云原生·容器·serverless·firefox·kubeless
今生相伴9911 小时前
ELFK:企业级日志管理的完整解决方案——从入门到精通
运维·elk·elasticsearch
码出钞能力2 小时前
更换libc.so导致linux变砖,通过LD_PRELOAD挽救
linux·服务器
小马学嵌入式~2 小时前
嵌入式 SQLite 数据库开发笔记
linux·c语言·数据库·笔记·sql·学习·sqlite
小猪咪piggy2 小时前
【JavaEE】(24) Linux 基础使用和程序部署
linux·运维·服务器