You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装R包(如DESeq2)时出现gcc-12错误求助

问题描述

执行BiocManager::install("DESeq2")时,依赖包(如sys、fastmap、askpass)下载正常,但编译安装阶段全部报错,核心错误为:

/bin/bash: /home/linuxbrew/.linuxbrew/bin/gcc-12: Bad address

直接执行gcc-12 --version也会触发相同错误。问题出现在brew upgrade之后,已升级到最新WSL内核(5.10.102.1),尝试brew postinstall gcc、brew reinstall gcc均失败,系统自带gcc(Ubuntu 9.3.0)正常,build-essential已是最新版本。

解决方案
  • 方案1:重建Homebrew gcc符号链接
    WSL中Homebrew的符号链接损坏常引发该错误,手动重建:

    1. 查看gcc@12的实际安装目录:
      ls -la /home/linuxbrew/.linuxbrew/Cellar/gcc@12/
      
    2. 替换下方[版本号]为实际目录名,重建链接:
      ln -sf /home/linuxbrew/.linuxbrew/Cellar/gcc@12/[版本号]/bin/gcc-12 /home/linuxbrew/.linuxbrew/bin/gcc-12
      ln -sf /home/linuxbrew/.linuxbrew/Cellar/gcc@12/[版本号]/bin/g++-12 /home/linuxbrew/.linuxbrew/bin/g++-12
      
    3. 测试gcc-12 --version是否正常,再尝试安装DESeq2。
  • 方案2:强制R使用系统gcc编译
    绕开Homebrew的gcc问题,直接用系统自带编译器:

    • 临时生效(仅当前R会话):
      Sys.setenv(CC = "/usr/bin/gcc", CXX = "/usr/bin/g++")
      BiocManager::install("DESeq2")
      
    • 永久生效:
      创建或编辑~/.R/Makevars文件,添加:
      CC=/usr/bin/gcc
      CXX=/usr/bin/g++
      CXX11=/usr/bin/g++
      CXX14=/usr/bin/g++
      CXX17=/usr/bin/g++
      
      保存后重启R再执行安装命令。
  • 方案3:修复WSL文件系统权限
    权限异常可能导致Homebrew工具无法正常运行:

    sudo chown -R $(whoami):$(whoami) /home/linuxbrew/.linuxbrew
    brew doctor
    

    根据brew doctor的提示修复其他问题,之后重试brew reinstall gcc@12。

  • 方案4:降级gcc版本
    若最新版gcc@12在WSL中存在兼容性问题,可切换到稳定的旧版本:

    brew install gcc@11
    

    然后在R中指定使用gcc-11:

    Sys.setenv(CC = "/home/linuxbrew/.linuxbrew/bin/gcc-11", CXX = "/home/linuxbrew/.linuxbrew/bin/g++-11")
    BiocManager::install("DESeq2")
    

内容的提问来源于stack exchange,提问作者ThePresident

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:51:09