MacOS 的软件包管理工具 HomeBrew 详解

本文详细介绍了Homebrew在MacOS平台上的安装、卸载、更新和软件包管理等操作,包括使用Ruby和Shell脚本安装,以及通过中科大镜像加速安装。此外,还讲解了Homebrew的目录结构、软件包位置、程序安装路径、版本切换和清理旧版本文件的方法。同时,列举了常用brew命令和brewcask(已废弃)的命令,帮助用户更好地管理和维护系统软件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、软件介绍

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 脚本,我们称为 Formulabrew 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 installinstalls the given Cask. 安装指定的软件包
brew cask reinstallreinstalls the given Cask. 重新安装指定软件包
brew cask upgradeupgrades all outdated casks
brew cask zapzaps all files associated with the given Cask. 清除与给软件包相关的所有文件

查询和检验软件包

命令说明
brew cask search查找指定关键词相关的软件包
brew cask infodisplays information about the given Cask
brew cask listwith no args, lists installed Casks; given installed Casks, lists staged files
brew cask outdatedlist the outdated installed Casks. 查看哪些软件包需要更新

执行其它功能

命令说明
brew cask auditverifies installability of Casks
brew cask catdump raw source of the given Cask to the standard output
brew cask createcreates the given Cask and opens it in an editor
brew cask doctorchecks for configuration issues. 检查配置问题
brew cask editedits the given Cask
brew cask fetchdownloads remote application files to local cache. 将远程应用程序文件下载到本地缓存
brew cask homeopens the homepage of the given Cask
brew cask stylechecks Cask style using RuboCop

十二、参考文章

  1. Mac 安装 Homebrew 的正确姿势
  2. Mac 镜像飞速安装 Homebrew 教程
  3. Mac 安装 Ruby 和 Homebrew 看过来
  4. Mac 安装 Homebrew 失败怎么办
  5. Homebrew 国内如何自动安装
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值