我想了解以下Ruby / Bundler / RubyGems命令之间的区别:
bundle install
bundle update
gem install my_gem.gem
gem update my_gem.gem
假设my_gem托管在rubygems.org上。我正在运行Ruby 1.8.7,RubyGems 1.8.10和Bundler 1.0.21。我也有rvm 1.8.6
可用(但我不确定在更新宝石时rvm是否相关)。
此外,我正在使用git
进行版本控制。我手动更新Gemfile
是否有意义?或者当上述命令之一运行时会自动发生吗?
答案 0 :(得分:3)
Gemfile
是您更改添加/删除/更新应用中运行的宝石(或只是宝石版本)的内容。 Gemfile.lock
是由bundler自动更新的文件。实际上,您不应该尝试手动更新Gemfile.lock
:首先,因为它是自动生成的,其次不是手动更改,如果您自己更改,则可能会混淆bundler。
回答你的名单:
bundle install
安装任何新的/更新的宝石和依赖项 - 但如果它们已经安装,则不执行任何操作bundle update
会浏览您已安装的宝石,并按照Gemfile
gem install my_gem.gem
绕过bundler,并在系统级安装gem(即在应用程序的代码包之外)gem update my_gem.gem
绕过bundler,并在系统级更新gem(即在应用程序的代码包之外)因此,安装了一组命令(如果尚未安装),一组命令更新到最新版本已安装的gem,一组命令仅在您的应用程序范围内执行这些操作(您的应用程序代码) bundle),一组命令在系统级执行这些操作。
Git与您的问题无关。