各种更新Ruby宝石的方法

时间:2011-12-01 21:34:09

标签: ruby gem

我想了解以下Ruby / Bundler / RubyGems命令之间的区别:

  1. bundle install
  2. bundle update
  3. gem install my_gem.gem
  4. gem update my_gem.gem
  5. 假设my_gem托管在rubygems.org上。我正在运行Ruby 1.8.7,RubyGems 1.8.10和Bundler 1.0.21。我也有rvm 1.8.6可用(但我不确定在更新宝石时rvm是否相关)。

    此外,我正在使用git进行版本控制。我手动更新Gemfile是否有意义?或者当上述命令之一运行时会自动发生吗?

1 个答案:

答案 0 :(得分:3)

Gemfile是您更改添加/删除/更新应用中运行的宝石(或只是宝石版本)的内容。 Gemfile.lock是由bundler自动更新的文件。实际上,您不应该尝试手动更新Gemfile.lock:首先,因为它是自动生成的,其次不是手动更改,如果您自己更改,则可能会混淆bundler。

回答你的名单:

  1. bundle install安装任何新的/更新的宝石和依赖项 - 但如果它们已经安装,则不执行任何操作
  2. bundle update会浏览您已安装的宝石,并按照Gemfile
  3. 中的定义获取最新的允许版本
  4. gem install my_gem.gem绕过bundler,并在系统级安装gem(即在应用程序的代码包之外)
  5. gem update my_gem.gem绕过bundler,并在系统级更新gem(即在应用程序的代码包之外)
  6. 因此,安装了一组命令(如果尚未安装),一组命令更新到最新版本已安装的gem,一组命令仅在您的应用程序范围内执行这些操作(您的应用程序代码) bundle),一组命令在系统级执行这些操作。

    Git与您的问题无关。