每次创建新项目时,都会出现以下错误:
Adams-MacBook-Pro:for_testing adam$ rails new outsidein Invalid gemspec in [/Users/adam/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"] Invalid gemspec in [/Users/adam/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"] Invalid gemspec in [/Users/adam/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"]
我已经更新了黄瓜和黄瓜栏,但我得到了错误。我该怎么办?
答案 0 :(得分:62)
您需要更新到最新版本的Rubygems,但您可能还需要删除旧版本Rubygems上安装的任何gem。
如果你正在使用rvm和gemsets,这很容易:
$ rvm gemset empty
现在您可以更新Rubygems:
$ gem update --system
如果你丢失了捆绑包,因为它已经安装在你的宝石集中,请将它安装在全局宝石集中,以便它可以用于所有宝石集,以便:
$ rvm @global gem install bundler
现在,您可以在闪亮的新Rubygems上的一个漂亮的干净宝石中重新安装所有宝石:
$ bundle
现在开心吗?
答案 1 :(得分:9)
RubyGems博客上最好地描述了这个问题:
http://blog.rubygems.org/2011/08/31/shaving-the-yaml-yak.html
TL; DR:gem update --system
和gem update bundler
RubyGems 1.8.10解决了这个问题。
答案 2 :(得分:4)
看看有什么帮助我:
$ gem update --system
...
$ bundle update
注意:
我认为关键是更新rubygems。
答案 3 :(得分:4)
我也有很多这样的错误。我只是手动编辑.gemspec文件并将#<Syck::DefaultKey-blah-blah
更改为=
。对于vim,搜索和替换命令为%s/#<Syck::DefaultKey:0x.*>/=/
。
答案 4 :(得分:1)
Cucumber-rails 0.3.2需要黄瓜> 0.8.0,但当捆绑者将我们从0.10.2改为1.04时,它就破了。需要像0.10.2这样的较老的黄瓜,它会起作用
宝石'cucumber-rails','0.3.2' 宝石'黄瓜','0.10.2'
答案 5 :(得分:1)
我只是将黄瓜固定在1.0.2,暂时有帮助...
gem 'cucumber', "1.0.2"
gem 'cucumber-rails', "1.0.2"