Gem.source_index已弃用,请使用Specification。 我应该重新安装Gem还是Rails?

我正在学习Ubuntu 11.在尝试生成应用程序时收到以下消息。 我错误地安装了一些东西吗?

$ 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. 

这对我有用:降级rubygems:

 gem update --system 1.6.2 

发现这个build议在: Gem.source_index被弃用,使用规范#34

尝试这个:

 sudo gem update bundler 

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

解决这个问题的最好方法是:

 $ gem pristine --all --no-extensions 

这将重build所有的gem(不包括那些本机扩展),并更新其gemspecs。 如果你没有任何本地扩展的gem,或者你没有在这些gem上使用任何自定义编译标志,你也可以省略--no-extensions标志。 否则,你将不得不build立他们分开。

我试过“sudogem更新”。 之后,我不再看到“Gem.source_index已被弃用,使用规范…”消息。 好极了!

rails -v = 2.2.2

ruby -v = 1.8.7

这个链接帮助我。

或干脆做

 gem update --system 1.6.2