“捆绑更新”和“宝石更新”有什么区别?

时间:2013-11-26 18:16:58

标签: ruby-on-rails ruby gem rvm bundler

我有一个Ruby on Rails应用程序,我正在使用Ruby Version Manager。我可以使用bundle updategem update来更新宝石吗?他们在做同样的事情吗?

1 个答案:

答案 0 :(得分:8)

主要区别在于 Rubygems (使用命令gem调用)管理单个机器上的所有gem(gemsets,如果您使用的是RVM),而 Bundler < / strong>(bundle)管理单个应用程序的gem集(其目的是在多台计算机上部署)。

Ruby版本管理器rvm)只能简化在同一台机器上管理不同gem版本的任务,但它不是与应用程序相关的,除非你想为一个gemset命名一个特定的应用(见named gemsets)。

两者都将忽略任何以前安装的gem,并根据源中可用的所有gem的最新版本再次解析所有依赖项。但是 Bundler Rubygems 不同,只会更新应用程序Gemfile中指定的gems和依赖项,并遵守其限制(版本号和精子)。

也就是说,您应该使用bundle install代替bundle update,以确保您在机器上安装相同的精确宝石和版本。