gpt4 book ai didi

ruby-on-rails-3 - ruby : how to bundle install some new gems without updating existing ones

转载 作者:行者123 更新时间:2023-12-01 01:11:43 24 4
gpt4 key购买 nike

我正在开发一个遗留的 Rails 应用程序。并且需要安装一些新的 gem。我们设置为使用 bundle 工具。但是我被警告说我们不能进行简单的 bundle 安装,因为对现有 gem 的任何更新都会使系统进入无效状态。

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

最佳答案

如果你这样做 bundle install , Bundler 只关心您在 Gemfile 中明确指定的新 gem 或新版本。 .它还会从 Gemfile.lock 中移除所有 gem 您从 Gemfile 中删除的.

如果你这样做 bundle update ,那么您最终会遇到您在问题中描述的问题。它将更新现有的 gem,特别是如果没有为每个 gem 指定特定的版本。

这里有更深入的解释:http://viget.com/extend/bundler-best-practices .有一个“INSTALL VS. UPDATE”部分,您可能想阅读。

更新

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

我最近必须做的事情的例子 sunspot_cell在我的环境中工作,基于 this post :

# 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"

如您所见,我想要 sunspot要使用的 gem github.com/sunspot/sunspot ,具体的 f5a6b54e8c12a500acf37cfa3b4091bc57b75db0修订。

对于 sunspot_cell_jars ,我要使用版本 0.4sunspot_cell_jars .

这保持 bundle install从搞乱任何东西,你保持对版本的完全控制。

关于ruby-on-rails-3 - ruby : how to bundle install some new gems without updating existing ones,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15043445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com