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

Mac OS M1环境下无法安装Ruby 2.7.5,configure报错求助

解决Ruby安装时configure: error: cannot run C compiled programs问题

第一步:补全系统编译依赖

不同系统所需依赖不同,按需执行:

macOS(含M系列芯片)

  • 安装Xcode命令行工具:
    xcode-select --install
    
  • M系列芯片需先装Rosetta 2(未安装时执行):
    softwareupdate --install-rosetta
    
  • 通过Homebrew安装编译依赖:
    brew install openssl readline zlib
    

Linux(Ubuntu/Debian为例)

  • 更新并安装基础编译套件:
    sudo apt update && sudo apt install build-essential libssl-dev libreadline-dev zlib1g-dev
    

第二步:修复文件权限问题

该报错常因临时目录或安装目录权限不足导致:

  • 重置/tmp目录权限:
    chmod 1777 /tmp
    
  • 确保rvm/rbenv安装目录归属当前用户:
    sudo chown -R $USER:$USER ~/.rvm ~/.rbenv
    

第三步:指定依赖路径安装Ruby

用rvm安装

export PATH="/usr/local/opt/openssl/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"

rvm install 2.7.5 --with-openssl-dir=$(brew --prefix openssl)

用rbenv安装

RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl)" rbenv install 2.7.5

第四步:排查架构兼容问题(M系列Mac)

  • 右键终端图标,选择「使用Rosetta打开」,重启终端后重新执行安装命令
  • 或临时切换x86_64架构运行终端:
    arch -x86_64 zsh
    # 在此终端内执行rvm/rbenv安装命令
    

第五步:彻底清理残留配置

移除之前rvm/rbenv的残留文件与环境变量:

  • 清理rvm:
    rvm implode
    rm -rf ~/.rvm ~/.rvmrc /etc/rvmrc
    
  • 清理rbenv:
    rm -rf ~/.rbenv ~/.ruby-build
    
  • 打开~/.bashrc/~/.zshrc,删除所有与rvm/rbenv相关的配置行,重启终端

第六步:手动编译安装(终极方案)

  1. 下载Ruby 2.7.5源码:
    wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.5.tar.gz
    tar -xzf ruby-2.7.5.tar.gz
    cd ruby-2.7.5
    
  2. 配置编译参数:
    ./configure --prefix=$HOME/.rubies/ruby-2.7.5 --with-openssl-dir=$(brew --prefix openssl)
    
  3. 编译并安装:
    make
    make install
    
  4. 添加到系统路径:
    echo 'export PATH="$HOME/.rubies/ruby-2.7.5/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:55:36