Homebrew Bundle
适用于来自 Homebrew、Homebrew Cask、Mac App Store、Whalebrew 和 Visual Studio Code 的非 Ruby 依赖项的打包工具。
要求
需要 Homebrew(在 macOS 或 Linux 上)来安装依赖项。
Homebrew Cask 是可选的,用于安装 Mac 应用程序。
mas-cli 是可选的,用于安装 Mac App Store 应用程序。
Whalebrew 是可选的,用于安装 Whalebrew 镜像。
Visual Studio Code 是可选的,用于安装 Visual Studio Code 扩展。
安装
首次运行时会自动安装 brew bundle
。
使用方法
请参阅 brew generate-man-completions
输出中的 brew bundle
部分或运行 brew bundle --help
。
Brewfile
示例:
# 'brew tap'
tap "homebrew/cask"
# 使用自定义 Git URL 的 'brew tap'
tap "user/tap-repo", "https://user@bitbucket.org/user/homebrew-tap-repo.git"
# 带参数的 'brew tap'
tap "user/tap-repo", "https://user@bitbucket.org/user/homebrew-tap-repo.git", force_auto_update: true
# 为所有 'brew install --cask' 命令设置参数
cask_args appdir: "~/Applications", require_sha: true
# 'brew install'
brew "imagemagick"
# 'brew install --with-rmtp',版本变更时 'brew services restart'
brew "denji/nginx/nginx-full", args: ["with-rmtp"], restart_service: :changed
# 'brew install',始终 'brew services restart','brew link','brew unlink mysql'(如果已安装)
brew "mysql@5.6", restart_service: true, link: true, conflicts_with: ["mysql"]
# 仅在指定操作系统上安装
brew "gnupg" if OS.mac?
brew "glibc" if OS.linux?
# 'brew install --cask'
cask "google-chrome"
# 'brew install --cask --appdir=~/my-apps/Applications'
cask "firefox", args: { appdir: "~/my-apps/Applications" }
# 绕过 Gatekeeper 保护(不推荐)
cask "firefox", args: { no_quarantine: true }
# 即使已安装,也始终将自动更新或无版本的 cask 升级到最新版本
cask "opera", greedy: true
# 仅当 '/usr/libexec/java_home --failfast' 失败时 'brew install --cask'
cask "java" unless system "/usr/libexec/java_home", "--failfast"
# 'mas install'
mas "1Password", id: 443_987_910
# 'whalebrew install'
whalebrew "whalebrew/wget"
# 'vscode --install-extension'
vscode "GitHub.codespaces"
版本和锁定文件
Homebrew 是一个滚动发布的包管理器,因此不支持安装任意旧版本的软件。如果您的软件需要特定的固定版本,请考虑在 Brewfile
中使用 whalebrew
行来安装 Docker 容器。
成功运行 brew bundle
后,它会创建一个 Brewfile.lock.json
文件来记录环境。如果将来的 brew bundle
运行失败,您可以检查 Brewfile.lock.json
的差异来进行调试。由于它可能包含在不同系统间变化的本地环境信息,因此不建议将其提交到多用户仓库的版本控制中。
通过设置环境变量 export HOMEBREW_BUNDLE_NO_LOCK=1
或使用命令行参数 brew bundle --no-lock
来禁用生成 Brewfile.lock.json
文件。
新的安装程序/检查器/导出器
brew bundle
目前支持 Homebrew、Homebrew Cask、Mac App Store、Whalebrew 和 Visual Studio Code。
我们对其他安装程序/检查器/导出器的贡献感兴趣,但它们必须:
- 能够在无用户交互的情况下安装软件
- 能够检查软件是否已安装
- 能够将已安装的软件导出为可存储在
Brewfile
中的格式 - 安装时不需要
sudo
- 被广泛使用
注意:根据这些标准,我们不会接受例如 Whalebrew(但没有计划移除它)。
测试
可以通过运行 bundle install && bundle exec rspec
来执行测试。
可以通过运行 brew style homebrew/bundle
来进行语法检查。
版权
版权所有 (c) Homebrew 维护者和 Andrew Nesbitt。有关详细信息,请参阅 LICENSE。