Macos 如何保存和版本brew软件包?

Macos 如何保存和版本brew软件包?,macos,homebrew,Macos,Homebrew,我习惯于通过npm、pip和gem等工具安装软件包和库。这些工具允许我以某种形式(package.json、requirements.txt或Gemfile)跟踪已安装的包。然后可以将其签入回购协议并进行版本控制 我在Github上有一个dotfiles repo,我喜欢用它来控制我的机器配置的版本,我想知道是否有一种方法可以控制安装的brew软件包的版本?如果是这样,这是如何做到的?类似于brew安装--save的内容正是我所希望的: 你要找的 它允许您跟踪Brewfile中安装的公式(包)

我习惯于通过npm、pip和gem等工具安装软件包和库。这些工具允许我以某种形式(package.json、requirements.txt或Gemfile)跟踪已安装的包。然后可以将其签入回购协议并进行版本控制

我在Github上有一个dotfiles repo,我喜欢用它来控制我的机器配置的版本,我想知道是否有一种方法可以控制安装的brew软件包的版本?如果是这样,这是如何做到的?类似于
brew安装--save
的内容正是我所希望的:

你要找的

它允许您跟踪
Brewfile
中安装的公式(包)

然后,您可以使用
brew bundle dump
转储其中所有已安装的公式,使用
brew bundle
安装bundle中的所有公式,并使用
brew bundle cleanup
删除bundle中未列出的所有已安装公式

语法与的非常相似,因此您可以轻松地编辑文件

它支持本地Brewfile(例如,每个项目一个)和全局Brewfile(
~/.Brewfile

安装时请使用:

$ brew tap homebrew/bundle

以下是适用于任何基于*nix的系统的简单方法:

#create list of installed packages
brew list | xargs -L1 > Brewfile
# install packages
cat Brewfile | xargs brew

这并不像你所说的那么复杂,但是如果你很匆忙的话,它可以完成这项工作。

不过请注意,该捆绑包不支持指定软件包的版本,因为Homebrew不支持安装任意版本的软件包。由于自制公式存储在git存储库中,因此您可以在运行
brew bundle
之前查看自制的特定版本,以使用git历史中当时可用的最新公式。@TimSmith或者您可以使用
自制/versions
中的公式,但它并不包含所有内容。