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 更新到特定版本的正确方法是什么?
将 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)