使用Homebrew安装的所有软件包的列表


447

是否可以以及如何使用来获取Mac上安装的所有软件包的列表Homebrew?我对在Homebrew外部安装的软件包不感兴趣。

Answers:


563

brew listbrew cask list

运行brew list将显示所有已安装的Homebrew软件包的列表。

此外,brew cask list还将提供使用Homebrew Cask安装的物品。

酿造清单


2
如果您在txt文件中有此列表。您将如何安装所有这些?brew install < list.txt似乎不起作用。
乔纳森(Jonathan)

26
@Jonathan xargs brew install < list.txt随意询问其他问题以获取更多详细信息或进行说明。
grg

3
@grgarside-爱你的终端提示。您是否愿意共享您的配置文件以使我的提示看起来像这样?
Kaushik Gopal 2014年

2
@Kaushik我终于写了一篇关于我的终端/外壳设置的博客文章-在那里随意提问。
grg

1
@乔纳森brew install $(< list.txt )
菲尔·皮罗

278

brew leaves显示所有顶级程序包。那是不依赖的包。如果您使用列表重新安装软件包,这应该是最有趣的。


3
好答案。您知道如何获取用户已安装的软件包的列表吗?这可能与有所不同leaves
史蒂文·肖

是的,例如java,没有列出,leaves因为即使我自己安装了它,它也依赖于另一个项目。
萨德·马利克

61

brew bundle如果因为要管理Brew安装而询问,可能也会很有趣。这包括酒桶,brew list没有。它旨在具有可复制的Homebrew设置。

# creates Brewfile in the current directory from currently-installed packages
brew bundle dump
# edit Brewfile
# install everything from the Brewfile
brew bundle

您可以使用该--global标志在您的文件上进行操作~/Brewfile-f强制覆盖现有文件(对于安装,这将强制卸载未列出的软件包)。


太好了!我不知道这存在。谢谢。我只希望它像是这样,brew leaves并且省略了您没有直接安装但仅作为依赖项安装的软件包。将来,程序包可能会更改依赖关系,但是无论如何您都将安装它,而不需要它。
布鲁诺·布鲁诺斯基

是。似乎每个程序包管理器都经历了不区分两者的这一阶段。
山姆·布莱曼

1
我最近的一堆垃圾表明bundle现在不包括依赖项。还有一些其他更改,例如引号样式和排序使它们变得更难理解差异,但总体看来,至少某些库已丢失Brewfile但已安装。
山姆·布莱曼

20

执行brew list命令显示所有已安装软件包的简单,按字母顺序排序的列表。

但是,使用Homebrew安装软件包时,会自动安装各种必需的软件包(依赖项)。可以将所有已安装软件包的列表查看为格式正确的依赖关系树。要查看它,执行以下命令:

brew deps --tree --installed

输出示例如下所示:

gdbm

openssl

python
├── gdbm
├── openssl
├── readline
├── sqlite
│   └── readline
└── xz

readline

sqlite
└── readline

xz

独立列出的包(例如gdbmopenssl在上面的示例输出中)没有依赖性。描绘为树形结构一部分的软件包的依赖关系在紧邻的较低级别列出(例如,软件包sqlite要求readline安装该软件包)。在树结构中的叶节点处列出的包没有依赖性。

树状结构中可视化的依赖项可以帮助轻松摆脱不必要的软件包。


1
brew leaves上面提到的命令在这方面很有用。它仅列出顶层软件包。
Paul Bissex

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.