brew
最后更新于:2022-04-02 05:45:08
[TOC]
# [Homebrew](https://brew.sh/index_zh-cn.html) 包管理工具
Homebrew(brew),方便从源码下载到本地编译安装,自动包含相关库依赖和环境设置,能在Mac中方便的安装软件、升级或卸载软件, 只需要一个命令, 非常方便。
下载的软件通常存在该目录下:`/usr/local/Cellar/`
类似 Ubuntu 的 `apt-get`,CentOS 的 `yum`。
## 安装brew
```
arm 版会被安装到`/opt/homebrew/bin/brew`目录,x86 版会被安装到`/usr/local/bin/brew`目录。
```
[Homebrew国内如何自动安装](https://zhuanlan.zhihu.com/p/111014448)
[镜像快速安装Homebrew教程](https://brew.idayer.com/)
# 更新源
```
# core
git clone git://mirrors.ustc.edu.cn/homebrew-core.git/ /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core --depth=1
# Cask
git clone git://mirrors.ustc.edu.cn/homebrew-cask.git/ /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask --depth=1
# unshallow update
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow
```
## 更改 Homebrew 默认源
默认的源实在速度有够慢的。以下是将默认源替换为国内 USTC 源的方法。
1. 替换brew.git:
```bash
git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
```
2. 替换核心软件仓库
```bash
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
```
在终端执行下面命令
```bash
# 执行更新
brew update
# 检查无错误:
brew doctor
```
这样海外和已经有系统全局代理设置的朋友们就可以直接使用`brew`命令安装软件了。
3. 替换 cask 软件仓库(提供 macOS 应用和大型二进制文件)
```
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git
```
4. 替换 Bottles 源(Homebrew 预编译二进制软件包)
bash(默认 shell)用户:
```bash
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile
```
zsh 用户:
```bash
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc
```
> [安装homebrew报错](https://blog.csdn.net/qq_35624642/article/details/79682979)
## brew 常用命令
~~~
brew search name # 搜索 brew 支持的软件(支持模糊搜索)
brew list / brew list --cask # 查看你安装过的包列表
brew info svn # 显示软件的各种信息(包括版本、源码地址、依赖等等)
brew install name # 安装源码
brew uninstall/rm name # 卸载软件
brew outdated #查看哪些已安装的程序需要更新
brew update # brew自身更新
brew upgrade name # 更新安装过的软件(如果不加软件名,就更新所有可以更新的软件)
brew cleanup # 清理旧版本的包缓存
brew services restart nginx # 重启Nigix就那么简单
(PS:详见 man brew)
~~~
## 示例
可以安装 `tree` 命令:
```
brew install tree
```
比如 git、MySQL、Gradle、Maven、Node.js 等工具,就不需要去网上下载了,只要一行命令就能搞定:
~~~
brew install git mysql gradle maven node
~~~
PS:安装 brew 的时候会自动下载和安装 Apple 的 Command Line Tools。
## [`brew tap`](https://github.com/Homebrew/brew/blob/master/docs/brew-tap.md)(安装第三方扩展的 brew 服务)
由于`brew` 和包含的包源都是通过 github 来管理,人为的维护管理,除了自己的源还允许别人的源添加进来。类似与 Ubuntu 的 `ppa`。然后就可以使用`brew`的命令进行管理。
```
brew tap
```
当然也可以从brew中移除掉的第三方公式:
```
brew untap user/repo [user/repo user/repo ...]
```
Mac OS每次系统更新都会把常用的开发包(Ruby、Python 等)也顺带着更新到最新版本。(Java、PHP都已经被抛弃不再默认安装了)
而 brew 居然也不包含 PHP 的包,那怎么办呢?
```
brew tap josegonzalez/php
```
命令完成之后,执行(当前最新是 php 5.5 版本,请根据需要替换)
```
brew install php55
```
# 完美解决macOS Homebrew安装JDK的一些问题
https://juejin.cn/post/6896353939277496327
```
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk8
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk9
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk10
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk12
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk15
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk
```
# [Homebrew Cask](https://caskroom.github.io/)
会下载解压已经编译好的文件(.dmg/.pkg),自动下载解压,到统一目录(`/usr/local/Caskroom` )下 ,省去自己下载、解压、拖拽、推出等烦人步骤。易于管理,容易卸载。包含了App Store没有的软件
brew-cask 是社区驱动的,如果你发现 brew-cask 上的应用不是最新版本,或者缺少你某个应用,你可以自己提交 pull request。
而且有些应用只能通过 App Store 安装,比如 Xcode 等一些 Apple 的应用。App Store 没有对应的命令行工具,还需要 Apple ID。倒是更新起来很方便。
## 推荐
几乎所有常用的应用都可以通过 brew-cask 安装,而且是从相应应用的官网上下载,所以你要安装新的应用时,建议用 brew-cask 安装。
**如果你不知道应用在 brew-cask 中的 ID,可以先用`brew cask search`命令搜索。**
安装完 brew 时,brew-cask 已经安装好了,无需额外安装
~~~
brew tap caskroom/cask # 添加 Github 上的 caskroom/cask 库
brew install brew-cask # 安装 brew-cask
brew cask install google-chrome # 安装 Google 浏览器
brew update && brew upgrade brew-cask && brew cleanup # 更新
~~~
# 示例
比如你可以这样安装:
~~~shell
brew install iterm2 --cask
brew install google-chrome --cask
brew install visual-studio-code --cask
brew install microsoft-edge --cask
brew install flux --cask
~~~
还有 wechat、baidunetdisk、tencent-lemon 等都可以用`brew cask`安装。
## 下载包以及缓存 位置
```shell
ls $(brew --cache) # 默认位置:~/Library/Caches/Homebrew
```
使用:`brew cleanup` 命令清除所有的下载包以及缓存。
## 卸载软件
一般软件会在这些位置:
```
~/Applications
~/Library/Application Support # Support文件
~/Library/Caches/ # 缓存文件
~/Library/Saved Application State/ # 配置文件路径
~/Library/Preferences # 配置文件路径
~/Library/Application Support/CrashReporter
~/Library/WebKit/
```
使用柠檬清理就蛮好哈~
## 文件预览插件
[quick-look插件](https://github.com/sindresorhus/quick-look-plugins) 可以让 Mac 上的文件预览更有效,比如语法高亮、markdown 渲染、json 预览等等。
~~~
brew install qlcolorcode --cask
brew install qlstephen --cask
brew install qlmarkdown --cask
brew install quicklook-json --cask
brew install qlprettypatch --cask
brew install quicklook-csv --cask
brew install betterzipql --cask
brew install webp-quicklook --cask
brew install suspicious-package --cask
~~~
>译注:
如果你经常使用 Alfred 启动程序,那么你会想 Alfred 可以搜索 brew cask 安装的程序,实现这些仅需运行:
```
brew cask alfred link
```
## LaunchRocket
一个帮助管理 Homebrew 安装的服务的软件,比如你使用 Homebrew 安装的 Mysql、Redis、MongoDB,是让它自启动呢,还是手动启动,传统方式需要使用命令行的命令,而使用[LaunchRocket](https://github.com/jimbojsb/launchrocket) 则可以在图形界面中进行管理了!
```
brew cask install launchrocket
```
安装后在系统偏好设置中的最下面能看到小火箭的软件标志,如下:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/3fa35f25e8e174ebeea1f192b97408a4_488x312.png)
# 更新软件
由于官方没有更新APP的命令(官方推荐使用APP自己的更新机制),所以有大神自己写了个更新命令模块。
## 使用命令行更新(推荐方法)
开源地址:https://github.com/buo/homebrew-cask-upgrade
首先安装:
```
brew tap buo/cask-upgrade
```
## 更新所有过时的APP
1. 先输入此命令,敲击回车:
```
brew cu # 获取最新版本的Homebrew Cask和所有的APP的信息
```
2. 再输入此命令,回车:
```
brew cu -a # 更新所有过时的APP
```
可能会问你是不是要一次全部更新这些软件,输入 Y 还是 N,这是因为需要更新的软件太多了。
## 更新指定的APP
```
brew cu [CASK]
```
选项:
```
Usage: brew cu [CASK] [options]
-a, --all Include apps that auto-update in the upgrade
--cleanup Cleans up cached downloads and tracker symlinks after updating
-f --force Include apps that are marked as latest (i.e. force-reinstall them)
-y, --yes Update all outdated apps; answer yes to updating packages
```
## 帮助信息
```
brew help cu
```
来获取更多帮助信息。
# 参考
http://www.cnblogs.com/TankXiao/p/3247113.html
';