3

我跑了bundle install,它成功了。但是,当我运行时ruby script/server,我在服务器实际启动之前收到了很多消息:

NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:127.

NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:127.

NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:127.

我怎样才能解决这个问题?

4

2 回答 2

1

看起来弃用在 ruby​​gems 本身内。

只需在控制台中运行它来更新它:

   gem update --system
于 2011-10-31T09:20:59.437 回答
0

没有人会喜欢这个,但到目前为止,它对我有用。
版本:
ruby​​ -v #=> ruby​​ 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin11.0]
rails -v #=> Rails 2.3.5
gem -v #=> 1.8.25

修复:
sudo vi /Library/Ruby/Site/1.8/rubygems/source_index.rb
(该文件可能位于您系统的其他位置,请阅读您的错误消息,它会告诉您它在哪里)

将第 127 行从:
add_spec gemspec if gemspec 更改
为:
Gem::Specification.add_spec gemspec if gemspec ruby​​gems

现在将使用非折旧方法并且警告应该消失。

警告 Will Robinson:我是一名牛仔程序员,不知道这会产生什么副作用,但到目前为止它对我来说还可以。看来 source_index.rb 文件不是 ruby​​gems github 存储库的一部分,所以我猜它是由其他进程创建的。我听说如果您使用的是 rails 3,这就会消失。::耸肩::

于 2013-02-20T20:44:27.213 回答