flutter版本管理工具fvm及GUI工具Sidekick

Homebrew 默認(rèn)只有兩個倉庫「Formulae」與「Casks」戒劫,可以使用tap指令為其添加更多倉庫,讓search找到的東西更多窍箍!有的倉庫有很多黑暗軟件包哈哈讯檐,一起來看看吧。

如果你還不知道什么是 Homebrew
macOS Homebrew 馬克

啥是 Taps摆霉?

Homebrew 官方 Docs 的Taps.md文檔比較詳細(xì)地介紹了 Taps 的概念豪椿。

image.png

軟件翻譯:「brew tap將添加更多包含了滿足trackupdateinstall指令公式列表的倉庫携栋。默認(rèn)情況下搭盾,tap假設(shè)倉庫來自自己的 GitHub 倉庫,但該命令不僅限于這個位置婉支⊙煊纾」

Taps 本身指的是第三方倉庫。Homebrew 不就是用來裝軟件包的嘛向挖,比較簡單的理解是:除了自帶的兩個倉庫「Formulae」與「Casks」蝌以,使用tap指令可以添加更多的倉庫。這些倉庫默認(rèn)從 Homebrew 自己的 Github 倉庫添加何之,但也可以是第三方的倉庫「甚至可以是你自己的倉庫」跟畅。

有更多的倉庫,就收錄了更多的軟件包溶推,也就能通過 Homebrew 安裝更多的內(nèi)容

使用brew tap查看當(dāng)前所有的倉庫:


image.png
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)庇忌、文檔的集合地。如果有任何需求舰褪、疑問皆疹,都可以來這里找答案。

image.png

瀏覽一下這個頁面占拍。最上面是熟悉的 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
image.png

安裝成功之后有决,就是配置你的環(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

image.png

下載安裝sidekick客戶端台汇,下載需要的flutter版本,比較奇怪的是經(jīng)常失敗,要下好幾次才能成功励七,估計(jì)是網(wǎng)絡(luò)連接問題智袭。


image.png
image.png

這里注意的一點(diǎn)是Android studio 支持不是很好掠抬,我的是無法打開的,所以只能手動設(shè)置

打開 AS 的 preferences瞳步。 設(shè)置 flutter sdk path, 對應(yīng)的 dart sdk path 會自動填充

image.png

更改flutter路徑為對應(yīng)的fvm版本


image.png

刪除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=HOME/fvm/default/bin:PATH
source ~/.zshrc

然后重啟命令 fvm global 3.0.3

執(zhí)行flutter doctor - v發(fā)現(xiàn)可以對上了


image.png

這里需要注意的一點(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í)行順序

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末获诈,一起剝皮案震驚了整個濱河市心褐,隨后出現(xiàn)的幾起案子逗爹,更是在濱河造成了極大的恐慌,老刑警劉巖掘而,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袍睡,死亡現(xiàn)場離奇詭異,居然都是意外死亡斑胜,警方通過查閱死者的電腦和手機(jī)止潘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涧狮,“玉大人么夫,你說我怎么就攤上這事∩娣悖” “怎么了钞它?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵殊鞭,是天一觀的道長操灿。 經(jīng)常有香客問我泵督,道長,這世上最難降的妖魔是什么小腊? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任秩冈,我火速辦了婚禮,結(jié)果婚禮上丹锹,老公的妹妹穿的比我還像新娘芬失。我一直安慰自己,他們只是感情好棱烂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布颊糜。 她就那樣靜靜地躺著,像睡著了一般锚扎。 火紅的嫁衣襯著肌膚如雪馁启。 梳的紋絲不亂的頭發(fā)上芍秆,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天妖啥,我揣著相機(jī)與錄音,去河邊找鬼荆虱。 笑死朽们,一個胖子當(dāng)著我的面吹牛骑脱,可吹牛的內(nèi)容都是我干的苍糠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拥娄,長吁一口氣:“原來是場噩夢啊……” “哼瞳筏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起孟抗,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤钻心,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后摊沉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痒给,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡苍柏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了棺棵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熄捍。...
    茶點(diǎn)故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡余耽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碟贾,到底是詐尸還是另有隱情轨域,我是刑警寧澤杀餐,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布怜浅,位于F島的核電站,受9級特大地震影響恶座,放射性物質(zhì)發(fā)生泄漏跨琳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一桂敛、第九天 我趴在偏房一處隱蔽的房頂上張望溅潜。 院中可真熱鬧,春花似錦粗仓、人聲如沸设捐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽槐沼。三九已至,卻和暖如春母赵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工周蹭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瓷胧。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓棚愤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瘸洛。 傳聞我的和親對象是個殘疾皇子次和,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容