我正在从 rubygems 安装 libv8 gem(大约 512M),想知道为什么要花这么长时间。这...
gem 规范 -r libv8
... 没有告诉我宝石的大小。然后我查看了文档,看起来 gem 创建者可以选择将有关其 gem 大小的信息放在 rubygems 的预定义“可选 gemspec 属性”之一下。
问:所以在安装远程 gem 之前不能可靠地知道它的大小?
额外问题:将宝石大小作为必需的 gemspec 属性是否不切实际?
这是在 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 和rubygems 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