不推荐使用Gem.source_index,请使用规范。我应该重新安装Gem还是Rails?

时间:2011-05-19 22:08:14

标签: ruby-on-rails ruby deprecated

我在Ubuntu 11上学习RoR。当我尝试生成应用程序时收到以下消息。我安装错误了吗?

$ rails generate controller Pages home contact
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/shared_helpers.rb:3.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/source.rb:162.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/source.rb:162.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/shared_helpers.rb:84.

5 个答案:

答案 0 :(得分:52)

这对我有用:降级rubygems:

gem update --system 1.6.2

Gem.source_index is deprecated, use Specification #34

找到了这个建议

答案 1 :(得分:28)

试试这个:

sudo gem update bundler

这会将bundler更新到最新版本(目前为1.0.15)。这不会产生警告,或者至少在我的情况下这是警告的原因。

答案 2 :(得分:14)

解决此问题的最佳方法是:

$ gem pristine --all --no-extensions

这将重建所有宝石(不包括具有原生扩展名的宝石)并更新其gemspecs。如果您没有任何具有本机扩展名的gem,或者您没有在这些gem上使用任何自定义编译标志,那么您也可以省略--no-extensions标志。否则你必须单独建造它们。

答案 3 :(得分:1)

我试过“sudo gem update”。 之后,我不再看到消息“Gem.source_index已弃用,请使用规范...”。耶!

答案 4 :(得分:-1)

rails -v = 2.2.2

ruby​​ -v = 1.8.7

This link helps me.

或只是做

gem update --system 1.6.2