红宝石-已弃用Gem.source_index,请使用Specification。 我应该重新安装Gem或Rails吗?

我正在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.
Kevin H asked 2020-07-30T13:58:56Z
5个解决方案
52 votes

这对我有用:降级红宝石:

gem update --system 1.6.2

在以下位置找到了此建议:Gem.source_index已过时,请使用规范#34

dsaronin answered 2020-07-30T13:59:16Z
28 votes

试试这个:

sudo gem update bundler

这会将捆绑程序更新为最新版本(当前为1.0.15)。 这不会产生警告,或者至少在我看来,这是警告的原因。

dexter answered 2020-07-30T13:59:41Z
14 votes

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

$ gem pristine --all --no-extensions

这将重建所有gem(不包括具有本机扩展名的gem)并更新其gemspec。 如果您没有任何具有本机扩展的gem,或者您没有在这些gem上使用任何自定义的编译标志,则还可以省略--no-extensions标志。 否则,您将不得不分别构建它们。

Koraktor answered 2020-07-30T14:00:07Z
1 votes

我尝试了“ sudo gem update”。之后,我再也看不到消息“ Gem.source_index已过时,请使用Specification ...”。 好极了!

Kevin H answered 2020-07-30T14:00:27Z
-1 votes

导轨-v = 2.2.2

红宝石-v = 1.8.7

此链接对我有帮助。

或干脆做

gem update --system 1.6.2
manish nautiyal answered 2020-07-30T14:01:00Z
translate from https://stackoverflow.com:/questions/6065383/gem-source-index-is-deprecated-use-specification-should-i-re-install-gem-or-ra