Есть ли способ получить список всех формул (пакетов), которые я могу установить, используя homebrew для Mac OS X?
7 ответов
онлайн
Вы можете посетить формула.brew.sh.
С вашего Mac
Если вы просто хотите имена пакетов для всех формул:
brew search
Следующая команда выведет список фрагментов информации для всех существующих формул Homebrew:
brew info --all
Или просмотрите локальный репозиторий Git - спасибо Mk12 за это:
find /usr/local/Homebrew/ -type d -name "Formula" -exec ls -1 {} \;
Помимо упомянутых вещей, на braumeister.org доступен онлайн-браузер пакетов.
Вы также можете взглянуть на сайт индекса формул Homebrew (это мой проект). Цель этого веб-сайта - предоставить простой способ поиска формулы для домашнего пива.
Технически, ответ, представленный @ pengii23 выше, является правильным, но, как мы знаем, JSON не очень легко понять. Более того, в результате получается более 266 000 строк для 4546 пакетов или более 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
не будет полезен для вас, но просмотр выходных данных вышеуказанной команды вернет эти два плюс 58 хитов!
Пожалуйста! ;)
[РЕДАКТИРОВАТЬ: Ой! Извините, я забыл удалить runtime_dependencies
из предыдущей версии скрипта. Вздох.... ]
Вы можете составить список формул Homebrew, используя команду
brew search
или просматривать в Интернете, используя http://formulae.brew.sh/ (или http://braumeister.org/ - кажется, это та же страница).
Однако существуют дополнительные пакеты, которые можно установить с помощью расширения Homebrew, которое называется Cask. Он может загружать и устанавливать готовые бинарные приложения, такие как GIMP, LibreOffice или даже не- FOSS, такие как TeamViewer. Бочки могут быть перечислены с помощью
brew cask search
и искали на https://caskroom.github.io/search.
grep desc $(brew --prefix)/Library/Formula/*.rb | perl -ne 'm{^.*/(.*?)\.rb.*?\"(.*)"$} and print "$1\t$2\n"'
По состоянию на 27 мая 2016 года только
brew info --all
недостаточно для перечисления всех формул. Вы должны дополнительно добавить ключ --json = v1 (в настоящее время поддерживается только v1, что вы можете увидеть, набрав brew info --help):
brew info --json=v1 --all