我有一个Ruby on Rails应用程序,我正在使用Ruby Version Manager。我可以使用bundle update
或gem update
来更新宝石吗?他们在做同样的事情吗?
答案 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
,以确保您在机器上安装相同的精确宝石和版本。