如何在命令行上将 gem 更新到特定版本?

Dav*_*ave 8 command-line rubygems rspec bundler

我正在使用 Rails 4.2.3。我想在命令行上更新特定的 gem (rspec),但是我似乎无法让它工作。

$ bundle update rspec-rails -version 3.9
No value provided for option '--retry'
$ bundle update rspec-rails -version 3.9 --retry==1
No value provided for option '--retry'
$ bundle update rspec-rails -version 3.9 --retry=1
No value provided for option '--retry'
Run Code Online (Sandbox Code Playgroud)

使用 bin/bundle 命令行工具将 gem 更新到特定版本的正确方法是什么?

ari*_*ver 9

将 gem 版本更新到特定版本的正确方法是在 Gemfile 中指定所需的版本,然后运行bundle install​​.

您可以将捆绑包锁定到特定版本,如下所示:

gem "rspec-rails", "3.9"
Run Code Online (Sandbox Code Playgroud)

或者,您可以执行此操作以获取版本 3.9 以及发布的所有补丁:

gem "rspec-rails", "~>3.9"
Run Code Online (Sandbox Code Playgroud)

至于为什么你的命令行失败,没有-version选择。并且,因为您使用了单个破折号 ( -),所以该单词version被解释为一个字母选项的列表,-v, -e,-r等。由于没有-vor-e选项,因此bundler忽略它们并尝试使用-r作为 的短选项的选项--retry。但是,该选项需要一个参数。

您可以了解有关此命令可用的选项的更多信息:

bundle update --help
Run Code Online (Sandbox Code Playgroud)