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

44

我正在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.

你解决了你的问题吗? - rafa.ferreira
5个回答

53

6
对我很有效,所有其他建议都失败了 :/ - EinLama
在运行 chiliproject(redmine)Ruby 应用程序的 Ubuntu 10.04 上,这对我有用。gem update bundler 未能消除错误/警告。 - hobs

28

试试这个:

sudo gem update bundler

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


1
嗨,Dexter,我遇到了与此帖子相同的问题,我运行了这个更新命令,但是输出了“没有要更新的内容”。错误仍然存在,你有其他提示吗?提前感谢! - rafa.ferreira
3
嘿@Castanho,尝试运行gem update bundler(不要用sudo)。 - Kevin Tsoi
2
没错... gem update bundler(不用sudo)对我有用。谢谢@KevinTsoi - Bongs

14

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

$ gem pristine --all --no-extensions

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


感谢Koraktor的输入 :) - Kevin H
2
我尝试了该命令(使用“--no-extensions”和不使用“--no-extensions”),但仍然收到相同的错误消息。感谢您回答问题,表现出关心。在看到您的帖子后,我继续尝试更多的东西,最终找到了解决方案 :) - Kevin H
@Kevin H,那么你是如何解决的呢? - davemyron
我记录了下面的“部分解决方案”,即输入“sudo gem update”。当我输入“rails generate controller…”时,我不再看到该消息=)。然而,当我运行“autotest”时,该消息会出现。因此,这不是完整的解决方案。对于造成的麻烦,我很抱歉:)。我将继续尝试并提供更新。 - Kevin H
在Mac OS上,当我使用sudo gem pristine --all --no-extensions命令时,效果很好。 - mcritz

1

我尝试了 "sudo gem update"。 之后,我再也没有看到 "Gem.source_index is deprecated, use Specification..." 这条消息了。耶!


2
2011-05-25的备注:当我运行“autotest”时,仍然看到“Gem.source_index已弃用,请使用Specification...”。看起来问题还没有解决。我将重新安装Ruby + Rails。 - Kevin H

-1

3
这是先前答案的完全副本:https://dev59.com/Tm025IYBdhLWcg3wVkif#7536173 - givanse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接