在哪里可以找到所有自制方法的列表?


72

有没有一种方法可以获取我可以使用Homebrew在Mac OS X上安装的所有公式(软件包)的列表?

Answers:


77

线上

您可以访问Formulae.brew.sh

从Mac

如果只需要所有公式的软件包名称:

brew search

以下命令将列出所有现有的Homebrew公式的信息摘要:

brew info --all

或浏览本地Git存储库-感谢Mk12:

find /usr/local/Homebrew/ -type d -name "Formula" -exec ls -1 {} \;

1
或第三个选择,ls $(brew --prefix)/Library/Formula
mk12

2
brew server不被支持,将很快被删除。您应该改用braumeister.org
迈克尔·多斯特

brew server似乎现在已被删除(自Homebrew 0.9.5起准确(git版本5745;最后一次提交
2016年


1
@MattTagg谢谢,我修复了链接。他们现在将公式拆分为不同的存储库。
slhck



1

从技术上讲,上面@ 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'而不是文字的制表符,当然,剪切-n-粘贴真实的制表符在这里是行不通的。

无论如何,这是上面命令输出的前几行:

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

你去!如果您将输出重定向到文件,则可以快速grep该文件以获取所需的任何描述。

例如,如果您正在寻找压缩命令,那么执行a 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

因此,如果您正在寻找高级压缩程序,例如brotlizstd,但您不知道要查找的确切名称,那么brew search compress这对您没有用,但是grepping上面命令的输出将返回这两个加58点击!

别客气!;)

[编辑:哎呀!抱歉,我忘了runtime_dependencies从脚本的先前版本中删除。叹...。


0

grep desc $(brew --prefix)/Library/Formula/*.rb | perl -ne 'm{^.*/(.*?)\.rb.*?\"(.*)"$} and print "$1\t$2\n"'


3
欢迎来到超级用户!尽管这可以回答问题,但是如果您可以提供解释为什么会这样做会更好。
DavidPostill

0

截至2016年5月27日,

brew info --all

不足以列出所有公式。您还必须添加--json = v1开关(当前仅支持v1,在您输入brew info --help时可以看到):

brew info --json=v1 --all

0

您可以使用以下命令列出Homebrew公式

brew search

或使用http://formulae.brew.sh/(或http://braumeister.org/ –似乎是同一页面)在Web上浏览。

但是,可以使用称为Cask的Homebrew扩展安装其他软件包。它可以下载并安装预构建的二进制应用程序,例如GIMP,LibreOffice甚至是非FOSS应用程序,例如TeamViewer。可以使用以下方式列出酒桶

brew cask search

并在https://caskroom.github.io/search上搜索。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.