Mac 软件包管理器Homebrew使用指北
Homebrew
Homebrew由开发者 Max Howell 开发,并基于 BSD 开源,是一个非常方便的软件包包管理器工具。

Homebrew 的几个核心概念
在正式介绍 Homebrew 的使用之前,我先为你介绍一下 Homebrew 中的一些核心的概念,了解这些概念,就可以帮助你更好的去使用 Homebrew。
| 词汇 | 含义 |
|---|---|
| formula (e) | 安装包的描述文件,formulae 为复数 |
| cellar | 安装好后所在的目录 |
| keg | 具体某个包所在的目录,keg 是 cellar 的子目录 |
| bottle | 预先编译好的包,不需要现场下载编译源码,速度会快很多;官方库中的包大多都是通过 bottle 方式安装 |
| tap | 下载源,可以类比于 Linux 下的包管理器 repository |
| cask | 安装 macOS native 应用的扩展,你也可以理解为有图形化界面的应用。 |
| bundle | 描述 Homebrew 依赖的扩展 |
其中,最关键的是 tap 、cask,我们在后续会经常用到。
Homebrew 常用操作
安装 Homebrew
1. 自动安装(推荐)
在使用 Homebrew 之前,首先我们需要完成 Homebrew 的安装工作。Homebrew 的安装工作非常简单,只需要执行如下代码,就可以自动开始安装流程,后续根据提示操作即可。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 上边的命令执行两个命令,首先下载install文件,然后用系统的ruby工具安装
- 尽量在bash或者zsh下安装,fish下会提示不识别'$'
- 不需要使用超级权限(sudo),该文件会将HomeBrew安装至
usr/local目录下。安装过程中会提示你执行哪些动作
后边还会有一些提示。继续的话会提示输入密码,等待安装完成。
安装完成后输入brew -v 即可显示是否安装成功:

2. 手动安装
执行如下命令:
mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
避免以下两点:
- 目录内包含空格
- 不要安装在
/sw或者/opt/local目录下
当然也可以手动下载安装脚本,然后修改HOMEBREW_PREFIX变量的值,修改为自己的安装目录。
Homebrew 常用命令总结
1. 安装卸载软件
brew --version或者brew -v显示brew版本信息brew install [软件名]安装指定软件brew uninstall [软件名]卸载指定软件brew info [软件名]查看某个特定软件的信息brew list显示所有的已安装的软件brew search text搜索本地远程仓库的软件,已安装会显示绿色的勾brew search /text/使用正则表达式搜软件
2. 升级软件相关
brew update自动升级homebrew(从github下载最新版本)brew outdated查看所有待更新版本的软件brew upgrade升级所有已过时的软件,即列出的已过时软件brew upgrade [软件名]升级指定的软件brew pin禁止指定软件升级brew unpin解锁禁止升级brew upgrade --all升级所有的软件包,包括未清理干净的旧版本的包
3. 清理相关
Homebrew 用久了,会有一些历史版本的软件遗留在系统里,这个时候,你可以使用 brew cleanup 命令来清理系统中所有软件的历史版本,或者可以使用 brew cleanup [软件名]来清理特定软件的旧版。
brew cleanup -n列出需要清理的内容brew cleanup [软件名]清理指定的软件过时包brew cleanup清理所有的过时软件brew unistall [软件名]卸载指定软件brew unistall [软件名] --force彻底卸载指定软件,包括旧版本
通过brew安装的文件会自动设置环境变量,所以不用担心命令行不能启动的问题。 比如安装好了gradle,即可运行 gradle -v
搜索软件
很多时候,我们并不知道自己想要安装的软件是否有,又或者不知道软件的具体名字是什么,这个时候有两种方式来完成搜索
1. 使用命令搜索
在命令行中,你可以直接使用 brew search [关键词] 来进行搜索

输入你想要的关键词,来搜索即可得到结果。
在搜索时应当遵循宁可少字,不能错字的原则来搜索。
2. 使用网页搜索
除了使用命令行搜索以外,你可以使用网页端的搜索工具来辅助你进行搜索。在 Homebrew 的官网,你可以找到 formulae 的链接,或者直接访问 https://formulae.brew.sh/ 来进行搜索。你只需要在界面的输入框中输入你要搜索的命令,然后就会出现对应的候选命令

选择其中你要使用的那个,点击就会进入到软件的介绍页面

你就可以看到 Homebrew 中的软件具体信息。
管理后台软件
诸如 Nginx、MySQL 等软件,都是有一些服务端软件在后台运行,如果你希望对这些软件进行管理,可以使用 brew services 命令来进行管理
brew services list: 查看所有服务brew services run [服务名]: 单次运行某个服务brew services start [服务名]: 运行某个服务,并设置开机自动运行brew services stop [服务名]:停止某个服务brew services restart:重启某个服务

检查 Hombrew 环境
如果你的 Hombrew 没有办法正常的工作,你可以执行 brew doctor 来开启 Homebrew 自带的检查,从而确认有哪些问题,并进行修复。

添加一个新的 tap
Homebrew 官方在安装的时候会有一些 tap 但是在使用时,依然会需要安装一些特殊的 tap ,这个时候,我们就要用到 tap 的命令来添加新的 tap.
在添加 tap 时,输入命令 brew tap [user/repo] ,就可以完成添加 tap 了
Homebrew 常用 tap
在使用 Homebrew 时,我们一般会添加几个常用的 tap,来确保我们有足够的软件来安装。
Caskroom
Caskroom 是 Homebrew 下一个非常出名的 tap ,有了 caskroom,我们就可以安装一些有图形化界面的软件了,比如 VSCode、Typora 等软件。
使用起来也非常简单,最新版 Homebrew 中,你可以直接使用 brew cask install [软件名] 来安装特定的软件,homebrew 会自动安装 Caskroom。
homebrew-cask-fonts
程序员难免要安装一些代码字体,这样才能更好的写代码,Homebrew 也提供了方便我们安装字体的 tap。
在使用时,你需要先添加对应的 tap ,然后执行安装即可了,比如我们要安装 source code pro ,只需要执行如下命令。
brew tap homebrew/cask-fonts
brew cask install font-source-code-pro
Homebrew 进阶技巧
切换国内的镜像源
Homebrew 默认使用的是国外的源,在下载时速度可能会比较慢。好在国内的清华大学和中科大提供了 Homebrew 的镜像源,我们可以很轻松的切换源,从而提升我们的下载速度。
使用中科大的镜像
执行如下命令,即可切换为中科大的镜像
# 替换 Homebrew
git -C "$(brew --repo)" remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# 替换 Homebrew Core
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
# 替换 Homebrew Cask
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
# 替换 Homebrew-bottles
# 对于 bash 用户:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile
# 对于 zsh 用户:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc
使用清华大学的镜像
执行如下命令,即可切换为清华大学的镜像
git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
使用 Brewfile 完成环境迁移
设备永久了,我们的电脑中会有大量的软件,如果你需要迁移环境,重新安装会是一个大麻烦,好在 Homebrew 本身为我们提供了一个非常好用的环境迁移的工具 —— Homebrew Bundle
你首先需要在之前的电脑中执行 brew bundle dump 来完成当前环境的导出,导出完成后,你会得到一个 Brewfile。
然后将 Brewfile 复制到新的电脑中,并执行 brew bundle 来开始安装的过程。
使用网页搜索 Caskroom 的软件
Brew Caskroom 并没有提供搜索的命令,不过我们可以借助一些网站来进行搜索,一个是 Homebrew 官方的 Caskrrom 页面:https://formulae.brew.sh/cask/

在这个页面,你可以看到所有被收录的页面,在命令行中输入对应的软件就可以安装了。
你也可以访问 http://macappstore.org/,在网站中输入你要安装的软件,点击搜索,在弹出的页面中,查看安装指南即可。

Homebrew 辅助软件
除了命令行,还有两款软件可以帮助我们更好的使用 Homebrew ,他们分别是 Cakebrew 和 launchrocket。
Cakebrew
Cakebrew 是 Homebrew 的 GUI 管理器,在 Cakebrew 中,你可以看到当前所有已经安装的软件,并可以在 Caskbrew 中对其他软件执行升级等操作。
你只需要执行 brew cask install cakebrew 就可以完成 Cakebrew 的安装。
安装完成后,在 LaunchPad 中打开即可。
launchrocket
launchrocket 可以用于管理 Homebrew 安装的服务,在使用时,你需要先添加对应的tap,然后再安装软件。
brew tap jimbojsb/launchrocket
brew cask install launchrocket
安装完成后,在 LaunchPad 中打开即可。
查找homebrew的缓存路径
执行如下命令
brew --cache
一般情况下是如下路径~/Library/Caches/Homebrew
直接进入缓存路径
cd (brew --cache)
此时直接进入了缓存目录。
缓存目录可在安装时指定:(不建议) 首先下载安装脚本:
https://raw.githubusercontent.com/Homebrew/install/master/install 将这个脚本内容保存至本地随便命名install 下载好install脚本后,找到HOMEBREW_CACHE变量,修改为自己想要的文件夹,然后执行安装命令:
/usr/bin/ruby -e "$(cat install)"
即可安装homebrew。
卸载homebrew
执行如下命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
Reference
- Homebrew 官网:https://brew.sh
- Homebrew Github:https://github.com/Homebrew/brew
- 程序员 Homebrew 使用指北: https://sspai.com/post/56009#toc_0
- HomeBrew常规使用教程:[https://juejin.im/post/5a559b9f6fb9a01cba42772f
Mac 软件包管理器Homebrew使用指北的更多相关文章
- Mac 系统下类似于 apt-get 的软件包管理器 -- Homebrew
对于一个习惯了在 Ubuntu 的终端上通过 apt-get 来安装工具软件的我来说,也希望在Mac上找到类似的工具,能很方便的一条命令就能安装所需的软件,而不用手工的去查找下载编译,或者是折腾安装所 ...
- Mac下软件包管理器-homebrew
类似于redhat系统的yum,ubuntu的apt-get,mac系统下也有相应的包管理容器:homebrew.用法与apt-get.yum大同小异,都是对安装软件做一些安装删除类的命令行操作,以下 ...
- mac包管理器Homebrew安装命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- Mac安装软件包管理工具Homebrew
PS:最近开始学习groovy,打算去官网下载SDK Bundle,可是官网半天加载不出来,而且莫名其妙就是下载不下来,Folx一直提示 "无效的HTTP相应:禁止",可能是插件和 ...
- mac安装brew 软件包管理工具Homebrew
brew 全称Homebrew 是Mac OSX上的软件包管理工具 Homebrew 安装和卸载工具 只用一行命令就能完成 官方地址: http://brew.sh/index.html ...
- 「NOI2015」「Codevs4621」软件包管理器(树链剖分
4621 [NOI2015]软件包管理器 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description Linux用户和OSX用户一定对 ...
- BZOJ 4196: [Noi2015]软件包管理器 [树链剖分 DFS序]
4196: [Noi2015]软件包管理器 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1352 Solved: 780[Submit][Stat ...
- [BZOJ4196][NOI2015]软件包管理器
4196: [Noi2015]软件包管理器 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1040 Solved: 603[Submit][Stat ...
- BZOJ4196 软件包管理器
Description Linux用户和OSX用户一定对软件包管理器不会陌生. 通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖 ...
随机推荐
- 在okhttp的callback回调中加Toast出现Cant create handler inside hread that has not called Looper.prepare()...
2019独角兽企业重金招聘Python工程师标准>>> 分析:callback中回调的response方法中还是在子线程中运行的,所以要调取Toast必须回到主线程中更新ui 解决方 ...
- 以内存级速度实现存储?XPoint正是我们的计划
随着计算能力虚拟化技术的普及,存储机制在速度上远逊于内存这一劣势开始变得愈发凸显. 这一巨大的访问速度鸿沟一直是各项存储技术想要解决的核心难题:纸带.磁带.磁盘驱动器乃至闪存记忆体等等,而如今最新一代 ...
- 【批处理】TXT文件批量转HTML文件工具
说到批量转html文件,相信喜欢看小说或经常制作电子书和教程的朋友应该很熟悉.因为,我们每次都会面临成千上万的txt文件,要将其转换为能正确显示的html文件是很麻烦的.当然,现在有很多的软件也可以实 ...
- OKR新手入门指南 (第一部分)
什么是OKR? OKR(目标和关键结果)是Google和其他公司使用的目标系统.这是一个简单的工具,围绕可衡量的目标进行调整和互动. OKR:Google的目标设定方法 与传统的规划方法有何不同? O ...
- D. Equalize the Remainders set的使用+思维
D. Equalize the Remainders set的学习::https://blog.csdn.net/byn12345/article/details/79523516 注意set的end ...
- Oracle触发器之系统触发器
系统触发器 可以用系统触发器记录一些ddl的数据操作或者是数据库的登录 或者登出操作. 语法: create or replace trigger 触发器名称 before/after 触发器时机 事 ...
- 【Hadoop离线基础总结】Hive调优手段
Hive调优手段 最常用的调优手段 Fetch抓取 MapJoin 分区裁剪 列裁剪 控制map个数以及reduce个数 JVM重用 数据压缩 Fetch的抓取 出现原因 Hive中对某些情况的查询不 ...
- WPF - 简单的UI框架
实现了一个简单的WPF应用程序UI框架 ,分享出来.界面效果图如下: 运行效果如下: 喜欢的可以下载源码参考:https://github.com/DuelWithSelf/WPFEffects 左侧 ...
- Python求差集
本月月初在职员工表(20来列,身份证.银行卡号等),本月离职员工表(10来列,计时.计件等),不考虑本月入职员工表,求下月月初在职员工表. Python,import pandas as pd,两个p ...
- [csu/coj 1079]树上路径查询 LCA
题意:询问树上从u到v的路径是否经过k 思路:把树dfs转化为有根树后,对于u,v的路径而言,设p为u,v的最近公共祖先,u到v的路径必定是可以看成两条路径的组合,u->p,v->p,这样 ...