Debian 12 中安装老版本的 gcc
背景
最近在C++中遇到了老版本的属性初始化问题,在新版本的gcc中无法复现。因此,需要安装老版本的gcc-4.8.5。然而,直接安装的话,源里面是没有的。因此,需要手动下载对应的 .deb
安装包。
步骤
-
查找 .deb 安装包
- 访问 deb安装包搜索网站。
- 选择适合你系统的
.deb
包(对于非移动手机或Mac新的arm芯片,选择amd64版本)。
-
下载 .deb 包
- 在网页中找到所需的
.deb
包及其依赖项。 - 复制下载链接,使用
wget
命令进行下载。例如:wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/gcc-4.8_4.8.5-4ubuntu8_amd64.deb'
- 在网页中找到所需的
-
安装 .deb 包
- 使用
dpkg
命令安装主包,如果提示缺少依赖项,继续下载并安装这些依赖项。例如:sudo dpkg -i gcc-4.8_4.8.5-4ubuntu8_amd64.deb
- 使用
-
下载并安装依赖项
- 根据提示,下载并安装所需的依赖项。例如:
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/cpp-4.8_4.8.5-4ubuntu8_amd64.deb'
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/gcc-4.8-base_4.8.5-4ubuntu8_amd64.deb'
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/libgcc-4.8-dev_4.8.5-4ubuntu8_amd64.deb'
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/libasan0_4.8.5-4ubuntu8_amd64.deb'
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/g++-4.8_4.8.5-4ubuntu8_amd64.deb'
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/libstdc++-4.8-dev_4.8.5-4ubuntu8_amd64.deb'
- 根据提示,下载并安装所需的依赖项。例如:
-
安装顺序
- 按照以下顺序安装各个包:
sudo dpkg -i libasan0_4.8.5-4ubuntu8_amd64.deb
sudo dpkg -i libgcc-4.8-dev_4.8.5-4ubuntu8_amd64.deb
sudo dpkg -i cpp-4.8_4.8.5-4ubuntu8_amd64.deb gcc-4.8-base_4.8.5-4ubuntu8_amd64.deb
sudo dpkg -i gcc-4.8_4.8.5-4ubuntu8_amd64.deb
sudo dpkg -i libstdc++-4.8-dev_4.8.5-4ubuntu8_amd64.deb g++-4.8_4.8.5-4ubuntu8_amd64.deb
- 按照以下顺序安装各个包:
-
使用
update-alternatives
管理多个版本的 gcc-
设置多个版本的 gcc:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 48 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-1048
和100
表示优先级,优先级高的即为默认的。
-
选择默认的 gcc 版本:
sudo update-alternatives --config gcc
- 根据提示,选择1或者2即可,非常方便。
-