You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在ARM架构的Ubuntu 22(Mac M2)上安装gcc-8的方法咨询

在ARM架构的Ubuntu 22(Mac M2)上安装gcc-8的方法咨询

别担心,这个问题一点都不蠢——在新版本Ubuntu上安装旧版编译器本来就容易遇到架构适配的坑,尤其是ARM64(你的Mac M2就是这个架构)这种场景。我来给你一步步说明怎么安装ARM原生的gcc-8:

  • 添加Ubuntu 20.04(Focal)的ARM专属软件源
    gcc-8在Ubuntu 22(Jammy)的官方源里已经被移除,但在Ubuntu 20.04(Focal)的源中还存在,而且ports.ubuntu.com是专门为非x86架构(包括ARM64)提供软件包的源,不会拿到Intel的交叉编译包。

    1. 先备份当前的源文件,防止出错:
      sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
      
    2. 编辑源文件:
      sudo nano /etc/apt/sources.list
      
    3. 在文件末尾添加以下两行ARM64专属的Focal源:
      deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal main universe
      deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-updates main universe
      
    4. Ctrl+O保存,Ctrl+X退出编辑器。
  • 设置源优先级,避免干扰系统默认包
    为了防止Focal源的包自动覆盖Ubuntu 22系统的默认包,我们需要给Focal源设置较低的优先级:

    1. 创建优先级配置文件:
      sudo nano /etc/apt/preferences.d/99-focal-pin
      
    2. 写入以下内容:
      Package: *
      Pin: release n=focal
      Pin-Priority: 50
      

    这个优先级(50)意味着只有当你明确指定要安装Focal源的包时,apt才会从这个源拉取,不会自动升级系统组件。

  • 更新缓存并安装gcc-8
    现在可以执行安装操作了:

    1. 更新apt缓存:
      sudo apt update
      
    2. 明确指定从Focal源安装gcc-8和g++-8:
      sudo apt install gcc-8/focal g++-8/focal
      
  • 验证安装并切换默认版本(可选)

    1. 检查gcc-8是否安装成功:
      gcc-8 --version
      
      如果输出显示gcc版本为8.x,那就说明安装成功了。
    2. 如果需要将gcc-8设置为默认编译器,可以使用update-alternatives工具:
      sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80
      sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 80
      
      之后可以通过以下命令切换默认的gcc版本:
      sudo update-alternatives --config gcc
      
      按提示输入对应序号即可切换。
  • 后续注意事项
    安装完成后,如果你不需要再从Focal源安装其他旧版包,可以把刚才添加的Focal源行注释掉(在行首加#),避免后续apt更新时出现不必要的兼容问题。

备注:内容来源于stack exchange,提问作者J0sh

火山引擎 最新活动