3

我正在从 ruby​​gems 安装 libv8 gem(大约 512M),想知道为什么要花这么长时间。这...

gem 规范 -r libv8

... 没有告诉我宝石的大小。然后我查看了文档,看起来 gem 创建者可以选择将有关其 gem 大小的信息放在 ruby​​gems 的预定义“可选 gemspec 属性”之一下。

问:所以在安装远程 gem 之前不能可靠地知道它的大小?

额外问题:将宝石大小作为必需的 gemspec 属性是否不切实际?

4

1 回答 1

6

这是在 OS X 或 Linux 上执行此操作的一种糟糕方法:

curl -s  https://rubygems.org/api/v1/gems/<gem-name>.yaml | sed -n "s/gem_uri: //p" | xargs curl -sLI | grep Content-Length | tail -1

会给你大小(以字节为单位)。

解释:

使用 curl 和ruby​​gems api获取有关 gem 的一些信息:

curl -s  https://rubygems.org/api/v1/gems/thor.yaml

获取 gem 文件下载的 URL

sed -n "s/gem_uri: //p"

下载 gem 的响应标头(在重定向之后)

xargs curl -sLI 

仅显示“Content-Length”的最后一个实例

grep Content-Length | tail -1

结果(~82k):

Content-Length: 83456
于 2013-04-29T21:03:31.727 回答