2011-05-06 51 views
12

gem update --system後,當我做有關RubyGems的東西,我收到此消息:如何避免來自RubyGems的棄用消息?

NOTE: Gem::Specification#default_executable= is deprecated with no replacement. It will be removed on or after 2011-10-01.

Gem::Specification#default_executable= called from /usr/lib/ruby/gems/1.8/specifications/rubygems-update-1.7.2.gemspec:11.

我怎樣才能避免呢?我試圖刪除rubygems並重新安裝,但那並沒有解決它。

+5

我這樣後悔updat什麼是浪費時間。 – oma 2011-05-06 15:24:23

回答

13

你可能需要重新生成寶石的規格。

After installing RubyGems 1.8.1 you will see deprecations when loading your exsting gems. Run gem pristine --all --no-extensions to regenerate your gem specifications safely.

http://blog.segment7.net/2011/05/05/rubygems-1-8-1

+8

這在大多數情況下仍然不起作用案例。 – 2011-05-06 11:43:00

+1

帶本機代碼的寶石將不得不被卸載,然後重新安裝。 – 2011-05-12 06:56:21

+0

當我跑,我得到:恢復寶石,原始狀態... 恢復MINITEST-1.6.0 恢復MINITEST-1.6.0 恢復耙0.8.7 恢復耙0.8.7 的RDoc 2.5沒有保存方法參數,因此您應該將您的rdoc-data gem升級到版本> = 2.5.3。 然後退出。可能在評論中看起來很愚蠢。不知道該怎麼辦。 – cabaret 2011-05-14 11:43:42

5

看您的RubyGems的安裝:

$ gem list -d rubygems 

找到deprecate.rb文件存在,並使self.skip類方法總是返回真值。

或者如果你使用RVM,以下命令將修復它:

rvm rubygems current 
+2

RVM修復只是降級了RubyGems的版本。 – 2011-05-06 11:43:29

+1

這在大多數情況下都很好。謝謝Gladys! – oma 2011-05-06 15:26:00

+0

對我來說,我有幾個deprecate.rb文件在同一地區,我必須做到這一點,所有這些技術?只做其中一個文件並沒有解決我在回滾到1.7.2後仍然收到一條消息的問題。 – LearningRoR 2011-05-12 23:56:28