我的 GemfileGemfile.lock 位于 Git 存储库中,如 http://gembundler.com/deploying.html

我使用 'rbconfig' 来防止在 linux 生产服务器上加载 rb-fsevent 但 capistrano 在执行命令 'bundle install' 时失败

我使用带有 require 'bundler/capistrano' 的 capistrano

查看堆栈跟踪:

You are trying to install in deployment mode after changing
Your Gemfile. Run 'bundle install' elsewhere and add the
Updated Gemfile.lock to version control.

You have deleted from the Gemfile:
rb-fsevent

在我的 Gemfile 中:
case HOST_OS
  when /darwin/i
    gem "rb-fsevent"
end

如何避免这种情况?

最佳答案

我遇到了同样的问题,看起来 bundler 已经 resolved this ,但没有很好的记录。

尝试使用 install_if 和 lambda:

gem 'rb-fsevent', install_if: ->() { `uname` =~ /darwin/i }

关于capistrano - Gemfile.lock 和 gem 的特定平台依赖关系?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8255761/

10-14 02:48