Homebrew
Homebrew介绍和安装
Homebrew官网 Homebrew Documentation Homebrew Github Mac App Store Search & Install any app on Mac
🍺 The missing package manager for macOS (or Linux) mac缺少macOS(或Linux)的软件包管理器
Homebrew 是一款 Mac OS 平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。
Homebrew 通过简单的一条指令,就可以实现包管理,不需要关心各种依赖和文件路径的情况。
Homebrew 的两个术语:
Formulae:软件包,包括了这个软件的依赖、源码位置及编译方法等;
Casks:已经编译好的应用包,如图形界面程序等。
Homebrw相关的几个文件夹用途:
bin:用于存放所安装程序的启动链接(相当于快捷方式)
etc:brew安装程序的配置文件默认存放路径
Library:Homebrew 系统自身文件夹
Cellar:通过brew安装的程序将以 [程序名/版本号] 存放于本目录下
通过brew install安装应用最先是放在/usr/local/Cellar/目录下。
有些应用会自动创建软链接放在/usr/bin或者/usr/sbin,同时也会将整个文件夹放在/usr/local
可以使用brew list 软件名确定安装位置。可以在mac终端直接输入 brew list mysql
Homebrew安装
Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Run brew help
to get started
brew -v
brew更新到最新版本,执行:brew update
Homebrew常用的brew命令
查看brew版本:brew -v
更新brew版本:brew update
本地软件库列表:brew list 列出已安装的软件
查看软件库版本:brew list --versions
查找/搜索软件包:brew search xxx (xxx为要查找软件的关键词),如brew search wget
安装软件包:brew install xxx (xxx为软件包名称),如brew install wget
卸载软件包:brew uninstall xxx
卸载软件:brew remove 软件名,如brew remove wget
安装软件:brew cask install xxx(xxx为软件名称)
卸载软件:brew cask uninstall xxx
查找软件安装位置:which xxx (xxx为软件名称)
列出过时的软件包(已安装但不是最新版本):brew outdated
更新过时的软件包(全部或指定):brew upgrade 或 brew upgrade wget
用浏览器打开brew的官方网站:brew home
显示软件信息:brew info
显示包依赖:brew deps
要获取最新的包的列表,首先得更新 Homebrew 自己。这可以用 brew update 办到。
brew update
更新包 (formula) 更新之前,我会用 brew outdated 查看哪些包可以更新。
brew outdated
然后就可以用 brew upgrade 去更新了。Homebrew 会安装新版本的包,但旧版本仍然会保留。
brew upgrade # 更新所有的包
brew upgrade $FORMULA # 更新指定的包
清理旧版本 一般情况下,新版本安装了,旧版本就不需要了。我会用 brew cleanup 清理旧版本和缓存文件。Homebrew 只会清除比当前安装的包更老的版本,所以不用担心有些包没更新但被删了。
brew cleanup # 清理所有包的旧版本
brew cleanup $FORMULA # 清理指定包的旧版本
brew cleanup -n # 查看可清理的旧版本包,不执行实际操作 这样一套下来,该更新的都更新了,旧版本也被清理了。
锁定不想更新的包 如果经常更新的话,brew update 一次更新所有的包是非常方便的。但我们有时候会担心自动升级把一些不希望更新的包更新了。数据库就属于这一类,尤其是 PostgreSQL 跨 minor 版本升级都要迁移数据库的。我们更希望找个时间单独处理它。这时可用 brew pin 去锁定这个包,然后 brew update 就会略过它了。
brew pin $FORMULA # 锁定某个包
brew unpin $FORMULA # 取消锁定
其他几个常用命令
brew info 可以查看包的相关信息,最有用的应该是包依赖和相应的命令。比如 Nginx 会提醒你怎么加 launchctl ,PostgreSQL 会告诉你如何迁移数据库。这些信息会在包安装完成后自动显示,如果忘了的话可以用这个命令很方便地查看。
brew info $FORMULA # 显示某个包的信息
brew info # 显示安装了包数量,文件数量,和总占用空间
brew deps 可以显示包的依赖关系,我常用它来查看已安装的包的依赖,然后判断哪些包是可以安全删除的。
brew deps --installed --tree # 查看已安装的包的依赖,树形显示
还有很多有用的命令和参数,没事 man brew 一下可以涨不少知识。
参考定期更新 Homebrew https://github.com/Homebrew/brew/blob/master/docs/FAQ.md https://segmentfault.com/a/1190000004353419 Homebrew常用安装卸载命令
安装过程中遇到的问题
连接不上网站的问题
如何解决类似 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused 的问题
笔者最近发现 github 的用户头像和自己文章中的图片显示不出来了。然后今天发现安装 homeBrew 和 nvm 出现了标题的报错信息。
以上是安装 pnpm 的报错信息,可以发现,脚本需要到 raw.githubusercontent.com 上拉取代码。
网上搜索了一下,发现是 github 的一些域名的 DNS 解析被污染,导致DNS 解析过程无法通过域名取得正确的IP地址。
解决方案
打开 https://www.ipaddress.com/ 输入访问不了的域名
查询之后可以获得正确的 IP 地址
在本机的 host 文件中添加,建议使用 switchhosts 方便 host 管理
添加以上几条 host 配置,页面的图片展示就正常了,homebrew 也能装了,nvm 也行动灵活了。
参考 如何解决类似 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused 的问题 #10
Homebrew的brew install 和 brew cask install 的区别
Homebrew 提供了两种安装软件的方式,brew install 和 brew cask install,下面对两种方式进行一些解释说明。
1. brew install
brew 是下载源码解压,然后 ./configure && make install ,同时会包含相关依存库,并自动配置好各种环境变量。
Homebrew is the easiest and most flexible way to install the UNIX tools Apple didn’t include with macOS.
对于对程序员只需通过简单的指令,就能快速安装和升级本地的各种开发环境,非常快捷方便。
2. brew cask install
brew cask 是针对已经编译好了的应用包(.dmg/.pkg)下载解压,然后放在统一的目录中(Caskroom),省掉了自己下载、解压、安装等步骤。
Homebrew-Cask extends Homebrew and brings its elegance, simplicity, and speed to macOS applications and large binaries alike.
这个对一般用户来说会比较方便,包含很多在 AppStore 里没有的常用软件。
简单来说,
brew install 用来安装一些不带界面的命令行工具和第三方库。
brew cask install 用来安装一些带界面的应用软件。
参考 brew install 和 brew cask install 的区别 brew和brew cask有什么区别?
Last updated
Was this helpful?