Ruby on rails 为不同的操作系统定义不同的gem,以便;s反映在Gemfile.lock中,可以与--deployment选项绑定

Ruby on rails 为不同的操作系统定义不同的gem,以便;s反映在Gemfile.lock中,可以与--deployment选项绑定,ruby-on-rails,bundler,gemfile,Ruby On Rails,Bundler,Gemfile,我希望能够在我的gem文件中定义,在我的开发机器(Windows 7)上应该安装某个gem(pg)版本(0.14.0-x86-mingw32),但在我的生产服务器(Debian)上应该安装常规版本 我曾尝试在Gemfile中定义组,但这似乎没有反映在Gemfile.lock中,当我在我的开发机器(Windows)上运行bundle install时,它会在Gemfile.lock中列出gem的Windows版本。然后,当我尝试使用Capistrano进行部署时,它会使用--deployment参

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

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


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

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

PLATFORMS
  ruby
  x86-mingw32