Homebrew 默認(rèn)只有兩個倉庫「Formulae」與「Casks」戒劫,可以使用tap指令為其添加更多倉庫,讓search找到的東西更多窍箍!有的倉庫有很多黑暗軟件包哈哈讯檐,一起來看看吧。
如果你還不知道什么是 Homebrew
macOS Homebrew 馬克
啥是 Taps摆霉?
Homebrew 官方 Docs 的Taps.md
文檔比較詳細(xì)地介紹了 Taps 的概念豪椿。
軟件翻譯:「brew tap
將添加更多包含了滿足track
、update
和install
指令公式列表的倉庫携栋。默認(rèn)情況下搭盾,tap
假設(shè)倉庫來自自己的 GitHub 倉庫,但該命令不僅限于這個位置婉支⊙煊纾」
Taps 本身指的是第三方倉庫。Homebrew 不就是用來裝軟件包的嘛向挖,比較簡單的理解是:除了自帶的兩個倉庫「Formulae」與「Casks」蝌以,使用tap
指令可以添加更多的倉庫。這些倉庫默認(rèn)從 Homebrew 自己的 Github 倉庫添加何之,但也可以是第三方的倉庫「甚至可以是你自己的倉庫」跟畅。
有更多的倉庫,就收錄了更多的軟件包溶推,也就能通過 Homebrew 安裝更多的內(nèi)容
使用brew tap查看當(dāng)前所有的倉庫:
beeftornado/rmtree # 循環(huán)移除指令的倉庫
homebrew/cask # 「Casks」
homebrew/cask-fonts # 字體倉庫
homebrew/cask-versions # 歷史版本軟件包倉庫
homebrew/core # 「Formulae」
homebrew/services # 服務(wù)指令倉庫
來自官方的其他倉庫
Homebrew 的 GitHub 倉庫地址在這里碍彭。
這里是所有 Homebrew 相關(guān)的倉庫、代碼悼潭、官網(wǎng)庇忌、文檔的集合地。如果有任何需求舰褪、疑問皆疹,都可以來這里找答案。
瀏覽一下這個頁面占拍。最上面是熟悉的 Homebrew 專屬啤酒圖標(biāo)略就,標(biāo)題簡介網(wǎng)址。下面是固定的幾個倉庫「Pinned repositories」晃酒,都是核心內(nèi)容表牢。例如,「brew」就是存放 Homebrew 自身代碼的倉庫贝次。
添加倉庫
添加倉庫的指令很簡單:
brew tap [org]/[repo] # org 是組織名稱崔兴,repo 是倉庫名稱
brew tap homebrew/homebrew-cask-fonts # 添加 homebrew 下的 homebrew-cask-fonts 倉庫
要注意的就是別忘了前面的組織名稱。
另外,tap指令不可以使用「空格」分隔敲茄,同時添加多個倉庫:
# install 指令可以使用「空格」分隔位谋,同時安裝多個軟件包
brew install python python@2
# 這個做法不能應(yīng)用到 tap 指令
X brew tap homebrew/homebrew-cask-fonts homebrew/homebrew-cask-drivers X
因此,想要添加倉庫的話堰燎,需要一條條指令依次執(zhí)行掏父。實(shí)在懶的話,可以用&&拼接多條指令秆剪。
使用 && 拼接多條指令
brew tap homebrew/homebrew-cask-fonts && brew tap homebrew/homebrew-cask-drivers
當(dāng)然赊淑,想要移除倉庫的話,使用untap指令就可以了:
brew untap [org]/[repo] # org 是組織名稱仅讽,repo 是倉庫名稱
brew untap homebrew/homebrew-cask-fonts # 移除已添加的 homebrew 下的 homebrew-cask-fonts 倉庫
現(xiàn)在已經(jīng)有很多優(yōu)秀的第三方倉庫陶缺,添加這些倉庫的步驟與官方倉庫非常類似。例如有一個用于循環(huán)移除軟件包的指令rmtree
何什,筆者感覺非常實(shí)用组哩。這個指令來自倉庫「beeftornado/rmtree」等龙〈υ可以這樣添加或刪除:
brew tap [org]/[repo] # org 是組織名稱,repo 是倉庫名稱蛛砰,官方非官方通用
brew tap beeftornado/rmtree # 添加 beeftornado 的 rmtree 倉庫
brew untap [org]/[repo] # org 是組織名稱罐栈,repo 是倉庫名稱,官方非官方通用
brew untap beeftornado/rmtree # 移除已添加的 beeftornado 的 rmtree 倉庫
這個rmtree
指令的作用是:安裝有些軟件包時泥畅,會安裝一系列的依賴包荠诬;但當(dāng)你刪除這個軟件包時,當(dāng)時添加的這些依賴包并不會被刪除位仁;使用brew rmtree [package]
即可循環(huán)刪除軟件包本身柑贞,與其依賴包聂抢。
brew tap fluttertools/fvm (找不到,報錯)
brew tap leoafarias/fvm
brew install fvm
安裝成功之后有决,就是配置你的環(huán)境變量到腳本工具中: 由于Mac的腳本工具有 .bash 和 .zsh 兩個,一般默認(rèn)的是 bash空盼,具體切換书幕,可以在這里參看蘋果官網(wǎng)的切換方法:在 Mac 上將 .zsh 用作默認(rèn) Shell
fvm install 2.8.1 //安裝 flutter 2.8.1 的 stable 版本
fvm install stable //安裝當(dāng)前最新的 stable 版本
fvm install dev //安裝當(dāng)前最新的 pre 預(yù)覽版本
https://github.com/fluttertools/sidekick
下載安裝sidekick客戶端台汇,下載需要的flutter版本,比較奇怪的是經(jīng)常失敗,要下好幾次才能成功励七,估計(jì)是網(wǎng)絡(luò)連接問題智袭。
這里注意的一點(diǎn)是Android studio 支持不是很好掠抬,我的是無法打開的,所以只能手動設(shè)置
打開 AS 的 preferences瞳步。 設(shè)置 flutter sdk path, 對應(yīng)的 dart sdk path 會自動填充
更改flutter路徑為對應(yīng)的fvm版本
刪除fvm 安裝的 flutter 版本
fvm remove 1.22.6 //卸載 1.22.6 版本
列出fvm 已安裝版本
~(master*) ? fvm list
Cache Directory: /Users/nickName/fvm/versions
2.2.2
1.22.6
fvm 查看當(dāng)前使用的 flutter 版本信息
fvm flutter --version
總之就是之前的 flutter 命令前面都加上 fvm
例如
fvm flutter clean
fvm flutter pub get
進(jìn)階
每個命令都要加一個fvm顯然非常麻煩单起,這個時候就要通過alias設(shè)置命令別名
本人使用的是zsh(如果是默認(rèn)的bash shell劣坊,參考下 "了解 bash_profile 和zsh" 小節(jié))
vi ~/.zshrc
添加如下
aliases 快捷使用fvm命令
alias flutter="fvm flutter"
alias dart="fvm dart"
source ~/.zshrc
然后重啟命令行即可
如果想要fvm設(shè)置的flutter版本全局生效呢?
fvm global 3.0.3
發(fā)現(xiàn)無法全局生效测蘑,報錯如下:
Flutter "3.0.3" has been set as global
However your "flutter" path current points to:
/Users/zby0520/flutter/flutter/bin
vi ~/.zshrc
添加如下
export PATH=PATH
source ~/.zshrc
然后重啟命令 fvm global 3.0.3
執(zhí)行flutter doctor - v發(fā)現(xiàn)可以對上了
這里需要注意的一點(diǎn)是康二,很多人是在多個地方配置了的,比如~/.bash_profile
這里的flutter和dart同樣需要制定到fvm/default/bin的軟連接之中挨约,這樣才能統(tǒng)一環(huán)境产雹。
了解 bash_profile 和zsh
.bash_profile 顧名思義,是每個 Profile(用戶)的 Bash 初始化文件夕土。
.zshrc 顧名思義时甚,是 zsh 的 RunControl(運(yùn)行控制)文件。
系統(tǒng)啟動時會先加載 /etc/profile梨熙、/etc/paths 這倆刀诬。
等你登錄了一個用戶后邪财,有 ~/.bash_profile 就加載它质欲,沒有它就加載 ~/.bash_login 和 ~/.profile。
zsh的配置文件為.zshrc怎憋,而默認(rèn)shell(bash)的配置文件為.bash_profile九昧,只有切換成zsh, 并在zsh 啟動時才會去加載的癌别,你要是用別的 Shell 它就不加載蹋笼。
彼此的生命周期也跟加載時機(jī)一致:系統(tǒng)級的就一直都在;用戶級的你注銷當(dāng)前用戶去登另一個用戶圾笨,它就沒有了速兔;Shell 級的你退出 Shell 以后它就沒有了活玲。
這里面寫的都是 Shell 腳本,對開發(fā)者來說一般也就是配置個環(huán)境變量镀钓,基本上自己的電腦是不會有多個登錄用戶的镀迂,bash_profile也無需關(guān)心多用戶問題。
如果使用oh-my-zsh后.bash_profile自定義失效窟赏,打開Oh My Zsh的配置文件.zshrc(vi ~/.zshrc)箱季,在其中添加代碼:source ~/.bash_profile,終端執(zhí)行source ~/.zshrc即可拷况。
# aliases 快捷使用fvm命令
alias flutter="fvm flutter"
alias dart="fvm dart"
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export FLUTTER_HOME=/Users/zby0520/fvm/default
export PATH="$PATH:${FLUTTER_HOME}/bin"
export DART_HOME=${FLUTTER_HOME}/bin/cache/dart-sdk/bin
export PATH=${DART_HOME}:${PATH}
export PATH="$PATH":"${FLUTTER_HOME}/.pub-cache/bin"
export GRADLE_USER_HOME=/Users/zby0520/gradle
export GRADLE_HOME=/Users/zby0520/gradle/gradle-7.0.2
export PATH=${PATH}:${GRADLE_HOME}/bin
export ANDROID_SDK_ROOT=/Users/zby0520/Library/Android/sdk
export PATH=$PATH:$ANDROID_SDK_ROOT/tools
export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools
了解更多profile、bashrc粟誓、/.bash_profile起意、/.bashrc、~/.bash_profile之間的區(qū)別和聯(lián)系以及執(zhí)行順序