更新Ruby gems的各种方法

更新Ruby gems的各种方法,ruby,gem,Ruby,Gem,我想了解以下Ruby/Bundler/RubyGems命令之间的区别: bundle安装 bundle更新 gem安装我的gem.gem gem更新我的gem.gem 假设我的_gem托管在。我正在运行Ruby1.8.7、RubyGems 1.8.10和Bundler 1.0.21。我还提供了rvm1.8.6(但我不确定在更新gems时rvm是否相关) 我还使用了git进行版本控制。手动更新Gemfile对我来说有意义吗?或者,当运行上述命令之一时,是否会自动发生这种情况?您可以更改Gemfil

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

  • bundle安装
  • bundle更新
  • gem安装我的gem.gem
  • gem更新我的gem.gem
  • 假设我的_gem托管在。我正在运行Ruby1.8.7、RubyGems 1.8.10和Bundler 1.0.21。我还提供了
    rvm1.8.6
    (但我不确定在更新gems时rvm是否相关)


    我还使用了
    git
    进行版本控制。手动更新
    Gemfile
    对我来说有意义吗?或者,当运行上述命令之一时,是否会自动发生这种情况?

    您可以更改
    Gemfile
    来添加/删除/更新应用程序中运行的gems(或仅是gems的版本)
    Gemfile.lock
    是bundler自动更新的文件。事实上,您不应该尝试手动更新
    Gemfile.lock
    :首先,因为它是自动生成的,其次,它不是手动修改的,如果您自己修改它,您可能会混淆bundler

    要回答您的问题,请列出:

  • bundle install
    安装任何新的/更新的gem和依赖项-但如果它们已经安装,则不会执行任何操作
  • bundle update
    运行您已安装的gems,并获取您的
    Gemfile
  • gem install my_gem.gem
    绕过绑定器,在系统级别安装gem(即在应用程序的代码包之外)
  • gem update my_gem.gem
    绕过绑定器,在系统级别(即在应用程序的代码绑定之外)更新gem
  • 因此,一组命令安装(如果尚未安装),一组命令更新到最新版本(已安装的gems),一组命令仅在应用程序范围内(应用程序代码包)执行这些操作,一组命令在系统级别执行这些操作

    Git与您的问题无关