使用 vfox-erlang 安裝管理多個(gè) Erlang/OTP 版本

vfox (version fox) 是一款跨平臺(tái)东且、可拓展的通用版本管理器. 支持原生 Windows 以及 Unix-like 系統(tǒng)! 通過(guò)它, 可以快速安裝和切換開(kāi)發(fā)環(huán)境的軟件版本. 最近給 vfox 水了幾個(gè)插件, 其中就有管理多個(gè) Erlang/OTP 版本的, 很喜歡他的插件管理機(jī)制. 之前也有使用過(guò)類(lèi)似的工具 asdf, 不過(guò) asdf 之前的使用體驗(yàn)不怎么好 (木有拉踩的意思~, asdf 的生態(tài)是非常強(qiáng)大的), vfox 現(xiàn)在支持的插件已經(jīng)非常之多了, 已經(jīng)可以管理大多數(shù)常見(jiàn)主流語(yǔ)言的版本.

vfox 的版本管理工作流大體上是和 asdf 類(lèi)似的, 不過(guò)性能要好一點(diǎn) (5 倍左右), 畢竟 asdf 核心是 shell 寫(xiě)的. 官方文檔也給出了一份基準(zhǔn)測(cè)試, 參見(jiàn) 《Comparison with asdf-vm》

https://upload-images.jianshu.io/upload_images/14206039-622c6e9c8cefcaea.png

vfox 和 asdf 一樣, 可以通過(guò) .tool-version 配置文件設(shè)置全局和項(xiàng)目級(jí)使用到的版本, 這意味著如果你從 asdf 切換到 vfox, 相當(dāng)?shù)姆奖?

vfox-erlang 的使用

本篇文章主要介紹怎么使用 vfox-erlang 插件, 在同一臺(tái)機(jī)器上管理多個(gè) Erlang/OTP 的版本. 一般在開(kāi)發(fā)環(huán)境擁有多個(gè)版本的 Erlang/OTP 供測(cè)試比對(duì)也是常見(jiàn)的需求.

目前插件的實(shí)現(xiàn)上實(shí)際的安裝過(guò)程是通過(guò)從源碼進(jìn)行編譯安裝 Erlang/OTP 的, 所以暫時(shí)只支持在 Unix-like 系統(tǒng) (比如 ubuntu剃毒、macos darwin 等) 上安裝管理 Erlang/OTP 的版本 (官方其實(shí)提供了 exe 安裝器在 windows, 還沒(méi)時(shí)間去研究加上去 2333~, 不過(guò)在 windows 使用 Erlang 的場(chǎng)景一般也比較少)豹芯。

Erlang 是一種編程語(yǔ)言, 用于構(gòu)建具有高可用性要求的大規(guī)慕е希可擴(kuò)展軟實(shí)時(shí)系統(tǒng)得糜。它的一些用途是電信、銀行症概、電子商務(wù)育勺、計(jì)算機(jī)電話(huà)和即時(shí)通訊但荤。Erlang 的運(yùn)行時(shí)系統(tǒng)內(nèi)置了對(duì)并發(fā)、分布和容錯(cuò)的支持涧至。
OTP 是一組 Erlang 庫(kù)和設(shè)計(jì)原則, 提供中間件來(lái)開(kāi)發(fā)這些系統(tǒng)腹躁。它包括自己的分布式數(shù)據(jù)庫(kù)、用于連接其他語(yǔ)言的應(yīng)用程序南蓬、調(diào)試和發(fā)布處理工具纺非。

安裝 vfox 和 vfox-erlang 插件

在使用 vfox-erlang 管理 Erlang/OTP 版本之前, 請(qǐng)確保你已經(jīng)在你的機(jī)器上安裝好了 vfox, 可以參考官方的文檔 Quick Start, 本文以 Ubuntu 為例.

# 安裝 vfox
echo "deb [trusted=yes] https://apt.fury.io/versionfox/ /" | sudo tee /etc/apt/sources.list.d/versionfox.list
sudo apt-get update -y
sudo apt-get install vfox -y

# 讓 vfox hook 你的 shell, 偏于 vfox 識(shí)別使用的 Erlang/OTP 版本
echo 'eval "$(vfox activate bash)"' >> ~/.bashrc

# 添加 vfox-erlang 插件
vfox add erlang

安裝使用指定版本 Erlang/OTP

由于是是從源碼編譯安裝的 Erlang/OTP, 所以我們需要有對(duì)應(yīng)的構(gòu)建工具鏈和依賴(lài)軟件, 這里以 Ubuntu 20.04 下安裝為例:

# “無(wú)腦”安裝依賴(lài)的軟件
sudo apt-get -y install build-essential autoconf m4 libncurses5-dev libwxgtk3.0-gtk3-dev libwxgtk-webview3.0-gtk3-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev xsltproc fop libxml2-utils libncurses-dev openjdk-11-jdk

然后我們即可通過(guò) vfox 管理安裝多個(gè) Erlang/OTP 版本了。

# 可以使用 search 命令查找可供安裝的版本
? vfox search erlang
Please select a version of erlang [type to search]: 
->  v25.3.2.5
   v24.0-rc3
   v24.3
   v23.3.4.18
   v24.0.6
   v24.3.2
   v25.3
   v24.1.4
   v26.0.2
# 或者直接指定一個(gè)版本安裝
> vfox install erlang@26.2.2
...
Install erlang@26.2.2 success! 
Please use vfox use erlang@26.2.2 to use it.

當(dāng)你看到類(lèi)似 Install erlang@xxx success! 的信息, 就意味著安裝完成了赘方。接下來(lái)可以通過(guò) vfox use 命令切換版本, 即可讓當(dāng)前 shell 會(huì)話(huà)可以使用對(duì)應(yīng)的 Erlang/OTP 版本了.

vfox use erlang@26.2.2
vfox use demo

vfox 提供了三種視角的版本管理方法: shell 會(huì)話(huà)烧颖、項(xiàng)目級(jí)、全局, 通過(guò)一個(gè) .tool-versions, 可以靈活的為不同的項(xiàng)目目錄分配使用不同的 Erlang/OTP 版本, 跟多信息可以查看官方文檔的介紹: vfox-Switch runtime.

本篇文章的使用示例主要以 Linux 系統(tǒng)為主, 但是 vfox-erlang 的使用文檔上也給出了在 MacOS Darwin 系統(tǒng)下的使用指南 install-in-darwin-macos-13, 并提供了在 Linux 和 MacOS 下持續(xù)集成測(cè)試供參考: vfox-erlang E2E testing.

e2e testing

Happy and funny~

本文由博客群發(fā)一文多發(fā)等運(yùn)營(yíng)工具平臺(tái) OpenWrite 發(fā)布

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末窄陡,一起剝皮案震驚了整個(gè)濱河市炕淮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌跳夭,老刑警劉巖鳖悠,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異优妙,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)憎账,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)套硼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人胞皱,你說(shuō)我怎么就攤上這事邪意【怕瑁” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵蜻牢,是天一觀的道長(zhǎng)亮靴。 經(jīng)常有香客問(wèn)我狠毯,道長(zhǎng),這世上最難降的妖魔是什么晶疼? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮又憨,結(jié)果婚禮上翠霍,老公的妹妹穿的比我還像新娘。我一直安慰自己蠢莺,他們只是感情好寒匙,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著躏将,像睡著了一般锄弱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祸憋,一...
    開(kāi)封第一講書(shū)人閱讀 52,262評(píng)論 1 308
  • 那天会宪,我揣著相機(jī)與錄音,去河邊找鬼夺衍。 笑死狈谊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沟沙。 我是一名探鬼主播河劝,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼矛紫!你這毒婦竟也來(lái)了赎瞎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤颊咬,失蹤者是張志新(化名)和其女友劉穎务甥,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體喳篇,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡敞临,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了麸澜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挺尿。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出编矾,到底是詐尸還是另有隱情熟史,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布窄俏,位于F島的核電站蹂匹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏凹蜈。R本人自食惡果不足惜限寞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望踪区。 院中可真熱鬧昆烁,春花似錦、人聲如沸缎岗。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)传泊。三九已至鼠渺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間眷细,已是汗流浹背拦盹。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留溪椎,地道東北人普舆。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像校读,于是被迫代替她去往敵國(guó)和親沼侣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

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