有没有办法获取我可以使用安装的所有公式(包)的列表自制适用于 Mac OS X 吗?
答案1
在线的
你可以拜访配方.brew.sh。
从 Mac
如果您只想要所有公式的包名称:
brew search
以下命令将列出所有现有 Homebrew 公式的信息片段:
brew info --all
或者浏览本地 Git 存储库 — 感谢 Mk12:
find /usr/local/Homebrew/ -type d -name "Formula" -exec ls -1 {} \;
答案2
除了这些事情slhck 提到,有一个在线包浏览器可用配方.brew.sh。
答案3
从技术上讲,@pengii23 的回答是正确的,但我们知道 JSON 不太容易理解。此外,这导致 4546 个包的输出超过 266,000 行,即每个包超过 56 行。
我们真正想要的只是包名称和包描述。格式可能如下:
package -- description goes here
pack2 -- other description goes here
现在,如果你已经完成了brew install gron
,那么我有一个非常棒的命令行给你,它将生成上面类型的输出:
$ brew info --json=v1 --all | gron | egrep '(.desc|.full_name) =' | \
grep -v 'runtime_dependencies' | sed 's/full_name/_name/' | \
gron -u | egrep -v '({|}|\[|\])' | \
sed -e 's/^.*"_name": //' -e 's/^.*"desc": //' | tr -d '\n' | \
sed -e 's/""/^I/g' -e 's/","/ -- /g'| tr '\t' '\n' | tr -d '"'
请注意,您必须将上面一行中的文字“^I”替换为实际的制表符。出于某种原因,我的 sed 不喜欢用 '\t' 代替文字制表符,当然,剪切粘贴真正的制表符在这里不起作用。
无论如何,这是上述命令的输出的前几行:
a2ps -- Any-to-PostScript filter
a52dec -- Library for decoding ATSC A/52 streams (AKA 'AC-3')
aacgain -- AAC-supporting version of mp3gain
aalib -- Portable ASCII art graphics library
aamath -- Renders mathematical expressions as ASCII art
aap -- Make-like tool to download, build, and install software
aardvark_shell_utils -- Utilities to aid shell scripts or command-line users
abcde -- Better CD Encoder
abcl -- Armed Bear Common Lisp: a full implementation of Common Lisp
abcm2ps -- ABC music notation software
以下是上述命令的最后几行输出:
zssh -- Interactive file transfers over SSH
zstd -- Zstandard is a real-time compression algorithm
zsxd -- Zelda Mystery of Solarus XD
zsync -- File transfer program
zurl -- HTTP and WebSocket client worker with ZeroMQ interface
zxcc -- CP/M 2/3 emulator for cross-compiling and CP/M tools under UNIX
zxing-cpp -- C++ port of the ZXing barcode decoder
zyre -- Local Area Clustering for Peer-to-Peer Applications
zzuf -- Transparent application input fuzzer
zzz -- Command-line tool to put Macs to sleep
就这样!如果你将该输出重定向到一个文件,那么你就可以快速地从该文件中查找你想要的任何类型的描述。
例如,如果您正在寻找压缩命令,则执行以下操作brew search compress
并不是很有用:
$ brew search compress
==> Searching local taps...
htmlcompressor ncompress yuicompressor
==> Searching taps on GitHub...
==> Searching blacklisted, migrated and deleted formulae...
但是如果我们将上述命令的输出保存到文件中/tmp/brew.txt
,那么简单grep compress /tmp/brew.txt
返回 60 个结果!让我们来看看前几个:
$ grep -i compress /tmp/brew.txt | head
advancecomp -- Recompression utilities for .PNG, .MNG, .ZIP, and .GZ files
afsctool -- Utility for manipulating HFS+ compressed files
aften -- Audio encoder which generates ATSC A/52 compressed audio streams
archivemail -- Tool for archiving and compressing old email in mailboxes
brotli -- Generic-purpose lossless compression algorithm by Google
bzip2 -- Freely available high-quality data compressor
draco -- 3D geometric mesh and point cloud compression library
ecm -- Prepare CD image files so they compress better
epsilon -- Powerful wavelet image compressor
exomizer -- 6502 compressor with CBM PET 4032 support
因此,如果您正在寻找像brotli
或这样的高级压缩程序zstd
,但您不知道要查找的确切名称,那么brew search compress
对您来说没有用,但通过上述命令的输出进行 greping 将返回这两个加上另外 58 个匹配!
不客气! ;)
runtime_dependencies
[编辑:哎呀!抱歉,我忘了从之前的脚本版本中删除。唉……]
答案4
自 2021 年 4 月 3 日起,使用
brew info --all --json=v1
以 JSON 格式列出所有公式。若要另外列出桶,请使用:
brew info --all --json=v2
brew info --all
如果不调用--json=vN
则会引发错误。