文章目录
- 一、软件介绍
- 二、安装 Homebrew
- 使用 Ruby 或者 Shell 脚本安装
- 手动 clone 安装
- 三、卸载 Homebrew
- 四、Homebrew 安装目录
- 五、安装包所在位置
- 六、程序安装目录
- 七、软件版本切换
- 八、清除旧版本文件
- 九、brew 命令汇总
- 安装、升级和删除软件包
- 查看和检验软件包
- 参考示例
- 服务相关
- 故障排除
- 执行其它功能
- 十、使用 brew 安装常用软件
- 十一、brew cask 命令汇总(命令全部作废)
- 安装、升级和删除软件包
- 查询和检验软件包
- 执行其它功能
- 十二、参考文章
一、软件介绍
Homebrew
是一款 Mac OS 平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。
Homebrew
的主命令是 brew
,该命令安装软件是直接下载程序源码然后编译安装,并自动做好必要的配置(如环境变量等)。并且,在安装软件之前,会先安装脚本里指明的相关依赖库。
brew
的底层命令其实是 ./configure && make install
。
The 3.5.0 release notes are available on the Homebrew Blog:
https://brew.sh/blog/3.5.0
The 3.5.6 changelog can be found at:
https://github.com/Homebrew/brew/releases/tag/3.5.6
二、安装 Homebrew
使用 Ruby 或者 Shell 脚本安装
找了一堆资料,都说执行如下命令语句(也就是HomeBrew官网推荐的安装方式):
配置了环境变量,直接在命令终端输入下面的命令:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
没有配置环境变量则输入下面的命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
如果 MacBook 没有 /usr/bin/ruby
这个程序,怎么搞?可以尝试下面这条命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
或者
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
结果执行命令语句就直接报错,如下:
curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to raw.githubusercontent.com:443
原因:这是外网,无法正常访问服务器
如果有 VPN 的用户可以尝试以上方式下载安装。没有 VPN 的国内用户可以使用以下的方式下载安装 HomeBrew
(亲测有效):
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
有个家伙推荐以下方式安装 HomeBrew
:
/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)"
我没有试过,我的电脑根本没有 /usr/bin/ruby
这个程序,搞啥呢?
该脚本用了中科大镜像加速访问,仅修改仓库地址部分,不会产生安全隐患。
关于中科大所提供的 Homebrew 镜像服务请点击以下链接查看:
https://lug.ustc.edu.cn/wiki/mirrors/help/brew.git
手动 clone 安装
详见请猛戳《手动 clone 安装 Homebrew》
三、卸载 Homebrew
使用中科大镜像的 Shell 脚本卸载:
/bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/uninstall.sh)"
使用中科大镜像的 Ruby 脚本卸载:
/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/uninstall)"
四、Homebrew 安装目录
Homebrew 的安装目录,即 Homebrew 本身的程序文件所在位置。我们通过 which brew
命令,可以发现 brew
命令的可执行文件的路径为 /usr/local/bin/brew
,它其实是一个指向 /usr/local/Homebrew/bin/brew
的软链接:
lwxdeMacBook-Air:local lwx$ ls -l bin/brew
lrwxr-xr-x 1 root admin 28 2 4 21:06 bin/brew -> /usr/local/Homebrew/bin/brew
/usr/local/Homebrew/bin/brew
是个 shell
脚本。用文本编辑软件打开,可以发现它实际上是读取系统使用的 ruby
的路径,来执行 /usr/local/Homebrew/Library/Homebrew/brew.rb
。
Homebrew 软件本身的各个文件全部 在 /usr/local/Homebrew/
目录下,其实每个 brew
命令都是一个个的 ruby
脚本,所有命令的 ruby
脚本文件都在目录 /usr/local/homebrew/library/homebrew
下,brew search
就是 /usr/local/homebrew/library/homebrew/search.rb
每个使用 brew
安装的软件都有一个对应的 ruby
脚本,我们称为 Formula
,brew install <package_name>
安装命令其实就是读取这个脚本里的配置,下载源码,然后运行配置里写好的编译安装命令。这些脚本放在 /usr/local/homebrew/library/taps/homebrew/homebrew-core/formula
下,使用 brew update
从 github 拉取最新版本的 brew
时,会在命令行运行结束后看到提示,哪些软件有版本更新,新增了哪些软件。
五、安装包所在位置
Homebrew 下载后的软件包放在哪里?网上说存放在/Library/Caches/Homebrew
目录下,我查过了,并没有该目录。所以我也不知道,肯定是在某个目录下。
当你用 brew reinstall <package_name>
重新安装该版本,就不需要重新下载了,它会直接使用已下载的软件进行安装。另外,随着时间推移,缓存的安装包文件越来越多,记得使用命令 brew cleanup
进行清理。
六、程序安装目录
HomeBrew 下载的软件的安装目录为:
/usr/local/Cellar/<package_name>/<version>/
源码编译完成后,生成的文件都会放在这里,如果是直接下载的可执行文件,也会直接放在这里。每个版本的软件都会放在对应版本名称的文件夹下。
一般的软件可能会包含可执行文件、供其它库使用的头文件、运行库、文档等文件或目录,为了方便升级管理。brew
会把这些文件或目录分别软链接到下面的目录中:
/usr/local/bin/
/usr/local/include/
/usr/local/lib/
/usr/local/share/
...
如果你用 brew upgrade <package_name>
更新过几次该软件,你所有安装过的版本都会在 /usr/local/Cellar/<package_name>/
目录下找到。每次升级时,brew
都是先把编译好的可执行文件等存放在当前版本目录下,撤销之前版本的软链接,然后在目录 /usr/local
下创建指向新版本的软链接,这样,我们就会使用到最新版本了。
七、软件版本切换
HomeBrew
更新后的版本不会自动删除,即更新后的软件会有多个版本,所以我们可以通过命令 brew switch <package_name_version>
来切换使用软件的某个具体版本。例如:
brew swith autojump 22.1.4
八、清除旧版本文件
时间久了,你的安装文件会越来越多,那么在 /usr/local/Cellar/
和 /Library/Caches/Homebrew
这两个目录下的旧版本软件文件会越来越多,这时候可以用 brew cleanup
清理掉不想用的旧版本,这样会会节省出来大量硬盘空间。如果你不想直接删掉,可以使用 brew cleanup -n
命令,它相当于预演一下,告诉你真正运行 brew cleanup
时会干些什么,而不会真正执行。检查完毕确定可以删除后,你再 brew cleanup
就安全多了。brew
的很多命令都支持 -n
参数,也就是 --dry-run
参数,这些就需要你自己去翻文档了。
九、brew 命令汇总
安装、升级和删除软件包
命令 | 说明 |
---|---|
brew install | 安装指定的软件包 |
brew uninstall | 卸载指定的软件包 |
brew update | 更新软件包列表 |
brew upgrade | 升级指定的软件包 |
brew cleanup | 清理老版本。使用 -n 参数,不会真正执行,只是打印出真正运行时会做什么 |
查看和检验软件包
命令 | 说明 |
---|---|
brew list | 列出所有已通过 brew 命令安装的软件包 |
brew list --versions | 查看你安装过的包列表(包括版本号) |
brew list --versions <formula> | 查看已安装的 formual 的版本信息 |
brew search | 通过关键字搜索可供安装的软件包,也可以使用正则表达式匹配查找相关的软件包,如 brew search /text/ ,/text/ 则是匹配字符串“text”的正则表达式 |
brew info | 查看软件包的简要信息 |
brew outdated | 查看哪些已安装的程序需要更新 |
brew deps | 显示包依赖 |
brew --prefix | 查看 homebrew 的安装路径 |
brew --repo | 显示 Homebrew 的 git 存储库所在的位置 |
参考示例
启动 MySQL 服务:
brew services start mysql # macOS重启后也会启动MySQL服务
停止 MySQL 服务:
brew services stop mysql # 停止MySQL服务后,系统重启就不会自动启动MySQL服务了
服务相关
命令 | 说明 |
---|---|
brew services list <service_name> | 显示安装的服务 |
brew services start/stop/restart <service_name> | 启动、停止、重启使用 brew 安装的服务 |
故障排除
命令 | 说明 |
---|---|
brew config | |
brew doctor | 运行 HomeBrew 医生,查看警告文件 |
brew install --verbose --debug | 以调试模式安装指定的软件包 |
执行其它功能
命令 | 说明 |
---|---|
brew link <package_name> | 将指定软件的当前最新版本软链到 /usr/local 目录下,即在该目录下创建符号链接文件,指向该软件的最新版本 |
brew unlink <package_name> | 将指定软件在 /usr/local 目录下的软链接删除 |
brew switch <package_name_version> | 切换使用软件的某具体版本。比如,brew swith autojump 22.1.4 |
注:更多使用说明请输入命令 man brew
查看。
十、使用 brew 安装常用软件
brew install alfred
brew install the-unarchiver
brew install qq
brew install line
brew install skype
brew install thunder
brew install mplayerx
brew install evernote
brew install skitch
brew install dropbox
brew install google-chrome
brew install mou
brew install iterm2
brew install sublime-text
brew install virtualbox
十一、brew cask 命令汇总(命令全部作废)
下面的命令把 brew cask
替换成 brew
即可。
安装、升级和删除软件包
命令 | 说明 |
---|---|
brew cask uninstall | 卸载指定的软件包 |
brew cask install | installs the given Cask. 安装指定的软件包 |
brew cask reinstall | reinstalls the given Cask. 重新安装指定软件包 |
brew cask upgrade | upgrades all outdated casks |
brew cask zap | zaps all files associated with the given Cask. 清除与给软件包相关的所有文件 |
查询和检验软件包
命令 | 说明 |
---|---|
brew cask search | 查找指定关键词相关的软件包 |
brew cask info | displays information about the given Cask |
brew cask list | with no args, lists installed Casks; given installed Casks, lists staged files |
brew cask outdated | list the outdated installed Casks. 查看哪些软件包需要更新 |
执行其它功能
命令 | 说明 |
---|---|
brew cask audit | verifies installability of Casks |
brew cask cat | dump raw source of the given Cask to the standard output |
brew cask create | creates the given Cask and opens it in an editor |
brew cask doctor | checks for configuration issues. 检查配置问题 |
brew cask edit | edits the given Cask |
brew cask fetch | downloads remote application files to local cache. 将远程应用程序文件下载到本地缓存 |
brew cask home | opens the homepage of the given Cask |
brew cask style | checks Cask style using RuboCop |
十二、参考文章
- Mac 安装 Homebrew 的正确姿势
- Mac 镜像飞速安装 Homebrew 教程
- Mac 安装 Ruby 和 Homebrew 看过来
- Mac 安装 Homebrew 失败怎么办
- Homebrew 国内如何自动安装