为不同的操作系统定义不同的宝石所以它在Gemfile.lock中反映并且可以与--deployment选项捆绑在一起

时间:2012-09-29 03:58:51

标签: ruby-on-rails bundler gemfile

我希望能够在我的Gemfile中定义在我的开发机器(Windows 7)上应该安装某个gem(pg)版本(0.14.0-x86-mingw32),但是在我的生产服务器上(Debian)它应该安装常规版本。

我已经尝试在Gemfile中定义组,但这似乎没有反映在Gemfile.lock中,当我在我的开发机器(Windows)上运行bundle install时,它列出了gem的windows版本在Gemfile.lock中。然后,当我尝试使用Capistrano进行部署时,它运行带有--deployment参数(和--without groups-i-want-to-exclude)的bundle,它使用Gemfile.lock并且根本不安装pg gem,因为列出的版本是for视窗。

我不想在我的生产服务器上手动编辑Gemfile.lock,因为这通常是一个坏主意,每次从我的repo重新部署它将更改回特定于Windows的版本。我也不想关闭--deployment选项(我当前的解决方案),因为这不是在这种情况下打算使用bundler的方式。

1 个答案:

答案 0 :(得分:0)

如果您不想在生产服务器上更改Gemfile.lock,则可以在本地计算机上更改它。尝试希望这项工作,在bundle install之后在Gemfile.lock中手动更改,并部署 -

PLATFORMS
  ruby
  x86-mingw32