Ruby on rails 您如何预览a";Bundle Update";你会做什么?

Ruby on rails 您如何预览a";Bundle Update";你会做什么?,ruby-on-rails,gem,bundle,bundler,Ruby On Rails,Gem,Bundle,Bundler,有时我想运行bundle update,但只是想看看哪些gem需要更新。我不一定要处理与更新所有内容相关的问题,但我想做一个快速检查,看看最先进的技术是什么 有没有办法简单地让Bundler列出需要与我当前运行的版本一起更新(理想情况下)的gem,以及最新和最好的版本是什么?没有办法直接使用Bundler完成这项工作,但只要您使用VCS,您就可以始终还原Gemfile.lock以还原通过更新所做的更改,或者对文件进行差异化处理,以查看所做的更改。看这个我试过这个: > gem instal

有时我想运行bundle update,但只是想看看哪些gem需要更新。我不一定要处理与更新所有内容相关的问题,但我想做一个快速检查,看看最先进的技术是什么


有没有办法简单地让Bundler列出需要与我当前运行的版本一起更新(理想情况下)的gem,以及最新和最好的版本是什么?

没有办法直接使用Bundler完成这项工作,但只要您使用VCS,您就可以始终还原Gemfile.lock以还原通过更新所做的更改,或者对文件进行差异化处理,以查看所做的更改。看这个

我试过这个:

> gem install bundle_outdated
> bundle-outdated
Finding outdated gems..

Newer versions found for:
  rails (3.1.0 > 3.0.0)
  haml (3.1.2 > 3.0.0)
  rspec-rails (2.6.1 > 2.0.1)

Lock bundle to these versions by putting the following in your Gemfile:
  gem 'rails', '3.1.0'
  gem 'haml', '3.1.2'
  gem 'rspec-rails', '2.6.1'

You may try to update non-specific dependencies via:
  $ bundle update haml rspec-rails

Handwaving specifications:
  haml: >= 3.0.0
  rspec-rails: >= 2.0.1
另一种选择:

> gem install gem-outdated
> gem outdated

现在有一种直接使用bundler实现这一点的方法。您不需要安装任何额外的gems

bundle outdated
会返回这样的东西吗

Outdated gems included in the bundle:
  * acts-as-taggable-on (2.4.1 > 2.3.3)
  * addressable (2.3.4 > 2.3.3)
  * arel (4.0.0 > 3.0.2)
  * better_errors (0.8.0 > 0.7.2)
  * builder (3.2.0 > 3.0.4)
  * capybara (2.1.0 > 2.0.3)
  * chunky_png (1.2.8 > 1.2.7)
  * codemirror-rails (3.12 > 3.02)
  * coffee-rails (4.0.0 > 3.2.2)
  .....

由于谷歌搜索点击了这个页面,并且提供的答案有一些需要注意的地方,我将添加另一个答案

如果您想查看您的gems发布了哪些更新,请将“GEM文件中的版本依赖性要求”考虑在内,使用:

bundle outdated --strict  
如果您不想考虑版本依赖性,只需使用其他答案中指定的
bundle-outleted

其次,如果要更新特定的gem,请使用:

bundle update --source gemname

bundle update gemname
更新gem及其所有依赖项,这可能会让您陷入混乱(甚至rails也会通过使用
bundle update haml
进行更新)。

非常有用-bundle outlated看起来像我想要的,在执行此答案之前要非常小心。首先;捆绑过时的不考虑版本依赖性要求。这意味着,即使您的gem文件中有特定的gem版本,它也会将所有内容显示为新的。其次bundle update gemname命令更新gem的所有依赖项。这意味着,如果“gemname”依赖于rails,您可能会得到一个新的rails版本。(示例中给出了haml所做的)。请看下面我的答案。