[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 <github_user/repo>
```
當然也可以從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
```
安裝后在系統偏好設置中的最下面能看到小火箭的軟件標志,如下:

# 更新軟件
由于官方沒有更新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
- 簡介
- 基本命令
- 高效操作
- 命令操作
- 常用軟件
- 問題設置
- 命令行神器
- 開發配置
- 開發環境配置
- brew
- git
- Karabiner-Elements
- iTerm2
- MacVim
- aria2
- LaunchBar
- zsh
- Tmux
- Charles
- Emacs(感覺不需要了)
- 常用工具
- Alfred
- mac 詞典增強
- Mac 高級操作
- mac 資源
- 黑蘋果
- 個人配置
- 黑蘋果資源
- 驅動集合
- 工具集合
- 黑蘋果指南
- [FAQ] 開始必讀!筆記本電腦常見問題
- [指南] hackintosh之SSDT/DSDT
- [指南] hackintosh之hotpatch
- [指南] 為Sierra(以及后來的版本)進行USB電源屬性注入
- [指南] 10.11+ USB的變化和解決方案
- [指南] 為USBInjectAll.kext創建一個自定義的SSDT
- [指南] Intel IGPU HDMI/DP audio (Sandy/Ivy/Haswell/Broadwell/Skylake)
- [指南] 怎么給DSDT打補丁來顯示電池狀態
- [指南]在雙GPU筆記本電腦中禁用獨立顯卡.md
- [指南]
- OpenCore
- 多系統引導
- hotpatch
- 黑蘋果裝機
- 刷BIOS大法
- dd