ruby-on-rails – 如何擺脫Spring警告:執行`gem pristine –all`?
,只是升級到v 0.9.0.現在我得到以下警告:
Warning: Runninggem pristine --all
to regenerate your installed gemspecs will improve the startup performance of Spring.
我嘗試執行該命令,但是無法安裝我的一些寶石,這可能與我最近升級到OS X Mavericks有關.如何擺脫這個警告?
這是因為以前版本的rubygems會在查詢時載入所有gemspec.
這是開始緩慢,越來越多的寶石被安裝.
但是使用Rubygems 2.1它有一個“stubbed”gemspec,載入速度非常快.有關更多資訊,請參閱https://github.com/rubygems/rubygems/pull/435 .
春天的人們利用這一點,不用載入每個gemspec,只是載入bin / spring,它只使用一小部分來呼叫spring伺服器.
它正在做的測試(假設你有RubyGem 2.1或更高版本)本質上是:
ruby -e 'p Gem::Specification.stubs.reject(&:stubbed?).reject(&:default_gem?).map(&:name)'
如果那個名單不是空的,那就知道你的寶石很老了,寶石安裝了RubyGems<2.1. 您可以使用該資訊生成一個寶石列表來執行寶石原始:
# /tmp/dirty.rb require 'shellwords' Gem::Specification.stubs.reject(&:stubbed?).reject(&:default_gem?).each do |gemspec| puts "gem pristine #{Shellwords.escape gemspec.name} --version #{Shellwords.escape gemspec.version.to_s}" end
然後執行:
ruby /tmp/dirty.rb | bash
但是,執行寶石原型更容易 – 所有的和@Beerlington提到的,gem解除安裝任何寶石給它一個問題.
程式碼日誌版權宣告:
翻譯自:http://stackoverflow.com/questions/19726167/how-do-i-get-rid-of-spring-warning-running-gem-pristine-all