如何让Brew在安装前显示公式的大小?

Shu*_*eng 7 macos homebrew package

我正在寻找一种brew无需安装即可显示公式大小的方法。我已经尝试了brew info和 的各种选项brew install,但都没有让我查看公式的大小。

\n\n

但是,在安装公式时,其大小将显示为输出的一部分。

\n\n

有任何想法吗?

\n\n
nlykkei-mbp:Projects nlykkei$ brew info llvm\nllvm: stable 8.0.1 (bottled), HEAD [keg-only]\nNext-gen compiler infrastructure\nhttps://llvm.org/\nNot installed\nFrom: https://github.com/Homebrew/homebrew-core/blob/master/Formula/llvm.rb\n==> Dependencies\nBuild: cmake \xe2\x9c\x94\nRequired: libffi \xe2\x9c\x94, swig \xe2\x9c\x94\n==> Requirements\nBuild: xcode \xe2\x9c\x94\n==> Options\n--HEAD\n        Install HEAD version\n==> Caveats\nTo use the bundled libc++ please add the following LDFLAGS:\n  LDFLAGS="-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib"\n\nllvm is keg-only, which means it was not symlinked into /usr/local,\nbecause macOS already provides this software and installing another version in\nparallel can cause all kinds of trouble.\n\n==> Analytics\ninstall: 15,199 (30 days), 39,871 (90 days), 183,880 (365 days)\ninstall_on_request: 11,125 (30 days), 30,095 (90 days), 140,885 (365 days)\nbuild_error: 0 (30 days)\n
Run Code Online (Sandbox Code Playgroud)\n

bfo*_*ine 7

这里有两个问题:

\n
    \n
  1. 如果公式没有\xe2\x80\x99t有瓶子(=预建存档),您可以\xe2\x80\x99t知道它的大小而不安装它。
  2. \n
  3. 如果配方奶有瓶子,需要下载才能知道其压缩后的大小
  4. \n
\n

I\xe2\x80\x99m 跳过第一个问题,因为它没有适合您的情况的解决方案。关于第二个,我们可以使用 Homebrew\xe2\x80\x99s JSON API 获取瓶子的 U​​RL,并且jq

\n
$ brew info --json=v1 llvm | jq --raw-output \'.[0].bottle.stable.files.big_sur.url\'\nhttps://ghcr.io/v2/homebrew/core/llvm/blobs/sha256:ff9a71b7b35ecb6c1dfcfe40152b00f4777a3f4a10dcf5cc41044458b02c99cd\n
Run Code Online (Sandbox Code Playgroud)\n

注意:因为这个 URL 很长,所以我在下面的命令中将其截断,以便更容易阅读。

\n

我们可以通过curl这个URL来知道压缩后的大小。请注意,自 2021 年 4 月起,ghcr.io 需要身份验证,但可以使用虚拟令牌。我们用来-I执行HEAD请求并获取不带正文的响应标头(-L= 遵循重定向;-sdon\xe2\x80\x99t 显示进度)。

\n
$ curl -Ls -I -H \'Authorization: Bearer QQ==\' https://ghcr.io/v2/homebrew/... | grep -i content-length\ncontent-length: 474762229\n
Run Code Online (Sandbox Code Playgroud)\n

该公式的 gzip 压缩大小为 474,762,229 字节,即 ~474MiB。

\n

gzip\xe2\x80\x99d 档案不\xe2\x80\x99t 包含其最终大小;我们必须解压它们才能知道。

\n

我们可以流式传输存档gunzip并获取其大小,而无需在磁盘上存储任何内容:

\n
$ curl -Ls -H \'Authorization: Bearer QQ==\' https://ghcr.io/v2/homebrew/... | gunzip - | wc -c\n1695293440\n
Run Code Online (Sandbox Code Playgroud)\n

未压缩的llvm公式重量为 1,695,293,440 字节,即 ~1.7GiB。

\n

不幸的是,这可能需要一些时间,具体取决于您的连接和瓶子\xe2\x80\x99s 的大小。

\n

单线:

\n
brew info --json=v1 llvm | jq -r \'.[0].bottle.stable.files.big_sur.url\' | xargs curl -Ls -H \'Authorization: Bearer QQ==\' | gunzip - | wc -c\n
Run Code Online (Sandbox Code Playgroud)\n