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

执行cap production deploy遇bundle平台兼容错误,已操作仍未解决求助

解决Rails部署时Bundle平台不匹配的问题

具体排查与解决步骤:

  • 确认Gemfile.lock已正确添加目标平台:
    执行bundle lock --add-platform x86_64-linux后,打开项目根目录的Gemfile.lock,检查PLATFORMS区块是否同时包含x86_64-linux和你的本地平台(比如x86_64-darwin-21)。如果未添加成功,确保命令在项目根目录下重新执行。
  • 提交更新后的lock文件到版本控制:
    执行git add Gemfile.lock,接着git commit -m "Add x86_64-linux platform to bundle lock",最后推送到远程仓库——Capistrano部署时会拉取最新的lock文件,这一步很关键。
  • 检查Capistrano的bundle配置:
    打开config/deploy.rb,确保没有错误的平台限制配置,可添加一行明确指定支持的平台:set :bundle_platforms, [:ruby, :x86_64_linux]。
  • 清理服务器端bundle缓存:
    登录生产服务器,进入项目目录执行bundle clean --force,之后重新运行部署命令;也可以在deploy.rb中添加前置步骤自动清理:
    before 'bundler:install', 'bundler:clean'
    
  • 核对本地与服务器的Ruby版本:
    确保本地ruby -v输出的版本和服务器上的Ruby版本完全一致(包括小版本号),版本差异可能导致平台识别异常。

如果上述步骤无效,可尝试重置lock文件:

  1. rm Gemfile.lock
  2. bundle install
  3. bundle lock --add-platform x86_64-linux
  4. 提交推送后重新执行部署命令

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 09:24:21