Ubuntu 22.04安装GCC(G++) 5失败的问题求助
Ubuntu 22.04安装GCC(G++) 5失败的问题求助
首先帮你拆解下遇到的问题:
- 你输入的命令里有个小失误:
g++5应该写成g++-5,少了横杠导致系统把它当成正则表达式去匹配包名,所以才会出现一堆无关的包推荐,但这不是找不到gcc-5的核心原因。 - 最后一行的
E: Unable to locate package gcc-5明确说明:你的系统在所有已配置的软件源里,找不到gcc-5这个包。
为什么加了ppa:ubuntu-toolchain-r/test还是不行?因为Ubuntu 22.04(Jammy Jellyfish)是较新的版本,这个PPA已经不再维护gcc-5这类老旧版本的编译器了——gcc-5的停止维护时间很早,PPA只会为较新的Ubuntu版本提供仍在支持的gcc版本。
给你几个可行的解决方案,按推荐程度排序:
方案一:用Docker容器运行带gcc-5的旧Ubuntu版本(最省心)
如果你只是需要用gcc-5编译代码,不需要在主机系统里安装它,Docker是最好的选择:
- 先安装Docker:
sudo apt update && sudo apt install docker.io - 拉取Ubuntu 16.04的镜像(这个版本官方源还支持gcc-5):
sudo docker pull ubuntu:16.04 - 启动一个带交互终端的容器:
sudo docker run -it --name gcc5-workspace ubuntu:16.04 - 在容器内部安装gcc-5和g++-5:
apt update && apt install gcc-5 g++-5
之后你就可以在这个容器里编译代码,编译好的文件可以通过Docker的文件拷贝功能导出到主机。
方案二:从源码编译安装gcc-5
如果一定要在主机上安装,可以尝试从源码编译:
- 先修改PPA的源配置,启用源码源:
编辑/etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-jammy.list文件,把开头是deb-src的那一行的注释去掉(如果没有的话,手动添加下面这行):deb-src http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu jammy main - 更新软件源:
sudo apt update - 安装编译依赖:
sudo apt install build-essential dpkg-dev libmpc-dev libmpfr-dev libgmp-dev - 下载gcc-5的源码包:
sudo apt source gcc-5 - 进入源码目录并编译(这个过程会非常久,可能需要几十分钟):
cd gcc-5-* sudo dpkg-buildpackage -us -uc -b - 编译完成后,用dpkg安装生成的deb包:
sudo dpkg -i ../gcc-5*.deb ../g++-5*.deb
方案三:手动下载旧deb包安装(不推荐,依赖问题多)
你可以从Ubuntu旧版本的归档源下载gcc-5的deb包,找到对应你系统架构(amd64/arm64)的包后,用sudo dpkg -i *.deb安装,但这个方法很容易遇到依赖缺失的问题,需要手动逐个安装依赖,非常繁琐。
备注:内容来源于stack exchange,提问作者Anirudh




