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

MacOS Ventura下安装需编译C代码的Gem时Bundle Install卡顿

解决Docker容器内bundle install卡编译C扩展Gem的问题

排查步骤与解决方案

1. 补全容器内编译依赖

需要编译C扩展的Gem依赖基础编译工具,先确保容器安装了必要组件:

  • Debian/Ubuntu系容器:
    apt-get update && apt-get install -y build-essential ruby-dev zlib1g-dev libssl-dev
    
  • Alpine系容器:
    apk add --update build-base ruby-dev zlib-dev openssl-dev
    

安装完成后重新执行bundle install。

2. 清除缓存并重新配置Bundle

删除可能损坏的缓存文件,同时开启编译日志排查卡点:

# 容器内执行
rm -rf ~/.bundle/cache vendor/bundle
bundle config set --local path 'vendor/bundle'
bundle install --verbose

--verbose会输出详细编译过程,能明确卡顿的具体环节。

3. 为msgpack指定编译兼容参数

Ventura系统的clang编译器默认启用了更严格的警告规则,可通过参数规避隐式函数声明导致的阻塞:

bundle config build.msgpack --with-cflags="-Wno-error=implicit-function-declaration"
bundle install

4. 调整Docker资源分配

若容器CPU或内存不足,编译C扩展时易出现卡顿:

  • 在Docker Desktop设置中增加CPU核心数与内存配额
  • 启动容器时显式指定资源:docker run --cpus=4 --memory=8g [你的容器参数]

5. 重新安装Ruby 2.7.4

若容器内Ruby是系统自带或第三方源安装,可能存在环境兼容性问题,建议用rbenv重新安装:

# Debian容器内rbenv安装步骤
apt-get install -y git curl libssl-dev libreadline-dev zlib1g-dev
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
rbenv install 2.7.4
rbenv global 2.7.4
gem install bundler

完成后再执行bundle install。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:15:48