Mac 上的包管理工具 Homebrew 使用
Homebrew 是使用 ruby 语言写的 Mac 系统的包管理工具 (也有 Linux 版本), 在系统默认没有提供相关包的情况下发挥作用. 大多是工程类没有图形界面的包.
Homebrew 的优点是能够判断系统中已经有的组件而不会重复下载, 其他的包管理工具如 MacPorts
, Fink
, pkgsrc
, Gentoo Prefix
等都会重复下载系统已有的组件.
安装
1 | /usr/bin/ruby -e "$(curl -fsSL [https://raw.githubusercontent.com/Homebrew/install/master/install](https://raw.githubusercontent.com/Homebrew/install/master/install))" |
镜像设置 (可选)
1 | # brew |
基础命令
brew install vim
: 安装 vimbrew install cask
: 安装 cask(也是一种软件管理工具, 但是涵盖软件范围广, 基本都是图形界面软件, 比如 QQ 微信等)brew help
: 查看简单帮助brew install <package name>
: 安装软件包brew uninstall <package name>
: 卸载软件包brew list [--versions]
: 列出已安装的软件包 (包括版本)brew search <package name>
: 查找软件包brew info <package name>
: 查看软件包信息brew update
: 更新 brewbrew cleanup
: 清理所有包的旧版本brew outdated
: 列出过时的软件包 (已安装但不是最新版本)brew upgrade [<package name>]
: 更新过时的软件包 (不指定软件包表示更新全部)brew doctor
: 检查 brew 运行状态man brew
: 显示使用手册brew pin $FORMULA
: 锁定某个包 (以后不会再更新)brew unpin $FORMULA
: 取消锁定brew tap buo/cask-upgrade
: 安装一个第三方的仓库- 第三方仓库需要在
GitHub
上, 且仓库名必须以homebrew-
开头 - 此命令的仓库名可以简写, 省略了
homebrew-
- 在
brew install
时, 默认的检查顺序如下- pinned taps
- core formulae
- other taps
- 第三方仓库需要在
brew tap-pin user/repo
: 固定某个第三方仓库brew tap-info --installed
: 列出所有已安装的taps
brew untap buo/cask-upgrade
: 删除brew deps --installed --tree
: 查看已安装的包的依赖, 树形显示brew install mas
: 安装更新官方商店软件的插件mas upgrade
: 更新 mas 内需要更新的软件
如何安装旧版本包
以安装 1.2.22 版本的 pyenv
为例
1 | # 1. create a new local tap(ignore this if created) |
官方全部包列表
个人 Homebrew 包清单 (仅供参考)
1 | autoconf libidn2 python |
小知识
Gem
是封装起来的Ruby
应用程序或代码库. 在终端使用的gem
命令, 是指通过RubyGems
管理Gem
包.
rvm
用于帮你安装Ruby
环境, 帮你管理多个Ruby
环境, 帮你管理你开发的每个Ruby
应用使用机器上哪个Ruby
环境. Ruby
环境不仅仅是Ruby
本身, 还包括依赖的第三方Ruby
插件. 都由RVM
管理.
curl
全称是 commandline url
, 是在命令行模式下工作, 利用 URL
的语法进行数据的传输或者文件的传输
[Cask](https://github.com/Homebrew/homebrew-cask)
介绍
brew
中的一个 gui 软件管理命令
基础命令
brew install --cask <software name>
: 安装软件brew install --cask <software name> --force
: 强制安装 (可用在已有 dmg 安装的情况下)brew uninstall --cask <software name>
: 卸载软件brew zap --cask <software name>
: 将与此包相关的所有文件全部删除 (可能会删除与其他包共享的一些文件)brew search --cask <software name>
: 根据名称搜索相关软件brew info --cask <software name>
: 查看软件相关信息brew list --cask
: 列出通过Homebrew-Cask
安装的包brew fetch --cask <software name>
: 下载远程软件包到本地文件夹 (不安装)brew outdated --cask
: 列出过期的软件包brew upgrade --cask
: 升级所有包brew tap buo/cask-upgrade
: 安装第三方仓库, 此仓库可以帮助用户检查更新并更新所有cask
brew cu -a
: 通过执行上一个命令后, 可用此命令更新所有 cask 下载的软件. 如果使用默认的brew cask upgrade
会导致部分自动更新的软件不被列出进而不能更新.
个人 cask 软件包清单 (仅供参考)
1 | 1password eudic iterm2 omnifocus qlvideo suspicious-package |
[rmtree](https://github.com/beeftornado/homebrew-rmtree)
这个包很简单, 功能就是将一个已安装包, 且将只用于该包的所有依赖全部删除, 非常实用!
安装
brew tap beeftornado/rmtree && brew install brew-rmtree
: 安装第三方 tap 并将该 tap 下的包 brew-rmtree
安装到本机
使用
brew rmtree <package name>
: 删除该包并将其所有依赖删除
[bundle](https://github.com/Homebrew/homebrew-bundle)
这个功能可以让我们备份恢复软件
brew bundle dump --describe --force --file="~/Desktop/Brewfile"
: 生成备份文件--describe
: 为列表中的命令行工具加上说明性文字.--force
: 直接覆盖之前生成的Brewfile
文件. 如果没有该参数, 则询问你是否覆盖.--file="~/Desktop/Brewfile"
: 在指定位置生成文件. 如果没有该参数, 则在当前目录生成Brewfile
文件.
brew bundle install --file="~/Desktop/Brewfile"
: 根据Brewfile
批量安装软件brew bundle check
: 检查是否Brewfile
中的所有依赖已经安装brew bundle list
: 列出Brewfile
中的所有依赖brew bundle cleanup
: 将Brewfile
中所有未列出的依赖全部删除