Ruby on rails 3 Ruby:如何捆绑安装一些新的gem而不更新现有的gem

Ruby on rails 3 Ruby:如何捆绑安装一些新的gem而不更新现有的gem,ruby-on-rails-3,bundler,Ruby On Rails 3,Bundler,我正在开发一个传统的Rails应用程序。需要安装一些新的gem。我们已设置为使用捆绑工具。然而,我被警告说,我们不能进行简单的捆绑安装,因为对现有gems的任何更新都会使系统进入无效状态 那么我如何使用bundle添加一些新的gem而不触及任何现有的gem呢?如果您安装了bundle,Bundler只关注您在gem文件中明确指定的新gem或新版本。它还将从Gemfile.lock中删除您从Gemfile中删除的所有gem 如果您执行了捆绑更新,那么您最终会遇到问题中描述的问题。它将更新现有的ge

我正在开发一个传统的Rails应用程序。需要安装一些新的gem。我们已设置为使用捆绑工具。然而,我被警告说,我们不能进行简单的捆绑安装,因为对现有gems的任何更新都会使系统进入无效状态


那么我如何使用bundle添加一些新的gem而不触及任何现有的gem呢?

如果您安装了
bundle
,Bundler只关注您在
gem文件中明确指定的新gem或新版本。它还将从
Gemfile.lock中删除您从
Gemfile
中删除的所有gem

如果您执行了
捆绑更新
,那么您最终会遇到问题中描述的问题。它将更新现有的gem,尤其是在没有为每个gem指定特定版本的情况下

下面是更深入的解释:。这里有一个“安装与更新”部分,你可能想读一下

更新

为了确保您完全控制gems的版本,我建议您在
Gemfile
中引用特定的版本。通过指示特定的修订,可以对Git引用执行相同的操作

我最近为使太阳黑子电池在我的环境中工作而不得不做的事情的示例,基于:

正如您所看到的,我想让太阳黑子宝石使用github.com/sunspot/sunspot
,带有特定的
F5A6B54E8C12A500ACF37CFA3B4091BC57DB0
版本

对于
sunspot\u cell\u jars
,我想使用
sunspot\u cell\u jars
0.4版本


这使得
bundle安装
不会弄乱任何东西,并且您可以完全控制版本。

好的,我运行了“bundle安装--无需部署”,因为这是一台开发机器。看起来它安装了新的gems OK。现在我遇到了乘客问题(我们使用Apache作为前端),”git://github.com/Goin/dm-migrations.git (在主服务器上)未签出。请运行
bundle安装
(Bundler::gitrerror)”。dm migrations也是现有gem文件中列出的gem之一,运行“bundle show dm migrations”表示它已安装。那么,bundle安装是否影响了其他设置?请帮助。您可以随时恢复更改。根据你提供的信息,我尽我所能回答了你的问题。我没有乘客方面的经验。听起来这可能是另一个更具体的问题。当然,我会根据乘客问题发布一个新问题。您在
Gemfile
中的宝石是否有
git
选项?也许你应该在新问题中发布你的
Gemfile
的相关部分。我会检查你的
Gemfile.lock
中引用了什么commit,然后在你的
Gemfile
中引用那些特定的commit。我将用建议的最佳实践更新我的答案。
# The ability to do full document indexing has some "special needs" right now
gem "sunspot", git: "git://github.com/sunspot/sunspot.git", ref: "f5a6b54e8c12a500acf37cfa3b4091bc57b75db0"
gem "sunspot_solr", git: "git://github.com/sunspot/sunspot.git", ref: "f5a6b54e8c12a500acf37cfa3b4091bc57b75db0"
gem "sunspot_rails", git: "git://github.com/sunspot/sunspot.git", ref: "f5a6b54e8c12a500acf37cfa3b4091bc57b75db0", require: "sunspot_rails"
gem "sunspot_cell", git: 'git://github.com/zheileman/sunspot_cell.git', ref: "0c0b7f980b8c46bd272fe0a5a31d2c259bebe36e"
gem "sunspot_cell_jars", "0.4"
gem "progress_bar", "0.4.0"