Ruby on rails 3 Bundle install命令两次命中rubygem源

Ruby on rails 3 Bundle install命令两次命中rubygem源,ruby-on-rails-3,rubygems,Ruby On Rails 3,Rubygems,从最近几个月开始,我看到对rails应用程序执行“bundle install”命令时,gemfile中提到的源被请求了两次,而gemfile中提到的每个源只请求一次 有人能告诉我为什么会发生这种情况并提出解决办法吗?事实上,bundler不会两次命中rubygems,或者至少不会出于同样的原因 Fetching gem metadata from https://rubygems.org/........ Fetching gem metadata from https://rubygems.

从最近几个月开始,我看到对rails应用程序执行“bundle install”命令时,gemfile中提到的源被请求了两次,而gemfile中提到的每个源只请求一次


有人能告诉我为什么会发生这种情况并提出解决办法吗?

事实上,bundler不会两次命中rubygems,或者至少不会出于同样的原因

Fetching gem metadata from https://rubygems.org/........
Fetching gem metadata from https://rubygems.org/..
如果您查看“bundle更新”期间执行的查询,您会得到以下结果:

https://rubygems.org:443
http://bundler.rubygems.org/api/v1/dependencies?gems=airbrake,aws-sdk
http://bundler.rubygems.org/api/v1/dependencies?gems=json,activesupport,builder
http://bundler.rubygems.org/api/v1/dependencies?gems=climate_control,rubinius-actor
http://bundler.rubygems.org/api/v1/dependencies?gems=term-ansicolor,gherkin
http://bundler.rubygems.org/api/v1/dependencies?gems=little-plugger,loquacious
http://bundler.rubygems.org/api/v1/dependencies?gems=bones-rcov,bones-rubyforge
http://bundler.rubygems.org/api/v1/dependencies?gems=systemu
http://bundler.rubygems.org/api/v1/dependencies?gems=restclient,spicycode-rcov
为了可读性,我特意缩短了URL

如果在浏览器中输入此URL

http://bundler.rubygems.org/api/v1/dependencies.json?gems=airbrake
正如您可能已经注意到的,我添加了.json扩展以获得json输出,因为默认格式是二进制的

你会看到像这样的东西

[
    {
        "name":"airbrake",
        "number":"3.1.8",
        "platform":"ruby",
        "dependencies":[
            ["json",">= 0"],
            ["activesupport",">= 0"],
            ["builder",">= 0"]
        ]
    },
    ... (content removed)
]
这个响应告诉我们airbrake gem依赖于json、activesupport和builder。所以bundler需要向rubygems询问关于这3颗宝石的更多信息。如果您查看上面的第二个查询,它就是这样做的

http://bundler.rubygems.org/api/v1/dependencies?gems=json,activesupport,builder
此过程将一直进行,直到解决所有依赖关系。这就是为什么点的数量可能会根据解决所有依赖关系的“迭代”次数而改变


然而,我必须承认,为什么信息被显示两次仍然不清楚。此外,点的数量(10)与查询的数量(9)并不完全对应。。。我需要对此做更多的调查。

你是说这些台词吗?正在从……获取gem元数据。。。。。。。。正在从..@basgys获取gem元数据…是的,正是..这就是我要说的。在上有一个未决问题。@basgys。。谢谢你的快速信息。我很想知道更多关于它的信息,同时我会尝试查看它。