加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何摆脱Spring警告:运行`gem pristine –all

发布时间:2020-12-16 20:31:32 所属栏目:百科 来源:网络整理
导读:我正在使用 Spring application preloader,只是升级到v 0.9.0.现在我得到以下警告: Warning: Running gem pristine --all to regenerate your installed gemspecs will improve the startup performance of Spring. 我尝试运行该命令,但是无法安装我的一些
我正在使用 Spring application preloader,只是升级到v 0.9.0.现在我得到以下警告:

Warning: Running gem 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卸载任何宝石给它一个问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读