加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – Ruby:如何在不更新现有宝石的情况下捆绑安

发布时间:2020-12-17 02:33:53 所属栏目:百科 来源:网络整理
导读:我正在开发一个传统的Rails应用程序.并需要安装一些新的宝石.我们设置使用捆绑工具.但是我被警告说我们不能进行简单的捆绑安装,因为对现有gem的任何更新都会使系统进入无效状态. 那么如何使用bundle添加一些新的gem而不触及任何现有的gem? 解决方法 如果您
我正在开发一个传统的Rails应用程序.并需要安装一些新的宝石.我们设置使用捆绑工具.但是我被警告说我们不能进行简单的捆绑安装,因为对现有gem的任何更新都会使系统进入无效状态.

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

解决方法

如果您进行捆绑安装,Bundler只会关注您在Gemfile中明确指定的新gem或新版本.它还将从您从Gemfile中删除的Gemfile.lock中删除任何gem.

如果您进行捆绑更新,那么您最终会遇到问题中描述的问题.它会更新现有的gem,特别是如果没有为每个gem指定特定的版本.

这是一个更深入的解释:http://viget.com/extend/bundler-best-practices.有一个“安装VS.更新”部分,你可能想要阅读.

更新

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

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

# 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",ref: "f5a6b54e8c12a500acf37cfa3b4091bc57b75db0"
gem "sunspot_rails",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"

正如你所看到的,我希望太阳黑子宝石使用github.com/sunspot/sunspot,特定的f5a6b54e8c12a500acf37cfa3b4091bc57b75db0版本.

对于sunspot_cell_jars,我想使用版本0.4的sunspot_cell_jars.

这使捆绑安装不会搞砸任何东西,并且您可以完全控制版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读