利用 kerl 來管理你系統上的 Erlang 版本



最近又回到了 Erlang 的懷抱了,不過之前因爲有自己弄了版本管理的方法,所以當初沒有試試看這一套,換了新的 MacBook Pro Retina 之後第一次開始寫 Erlang,剛好拿這套 Kerl 來用一下,試用一下發現真的很不錯呢!於是心血來潮寫一篇介紹來給中文的 Erlang developers 看一下。

Kerl 是幹什麼用的?

因爲 Erlang 衆多版本的問題,一次改版都會有不少的改動,加上因爲 functional language 比一般語言嚴謹的關係,所以常常一個 Erlang 寫的軟體會在特定的版本範圍內才可以使用,所以不是只要抓最新版下來就萬事 ok 的,如果靠系統提供的套件管理程式來安裝 Erlang,通常就只會拿到最新版,或是最近幾個版本,而且一次只能安裝一個,新的裝進來舊的得先移掉,我們需要一個方便的 Erlang 版本管理系統,安裝起來又不會太麻煩,就是 Kerl 啦!

開始安裝 Kerl

雖然說是系統,但是其實只是一支 script 而已,可以透過下面這個指令來安裝:

curl -O https://raw.github.com/spawngrid/kerl/master/kerl; chmod a+x kerl

這時候你在當前目錄下就可以用啦,LittleQ 建議大家可以把這隻 script 收進有在 $PATH 內的目錄下,這樣以後使用起來也比較方便啦!

要能活用 Kerl,你要先知道下面這三個名詞代表的意義是什麼:

  • Releases:現在 Erlang 有出的版本們。
  • Builds:在你電腦上已經下載完成且 build 好準備被你安裝的版本們(還不能使用)。
  • Installations:已經在你電腦上安裝好的版本們(可以被使用)。

Mac OS X 的使用者請注意,因爲預設的 configure 參數是針對 Linux 系統的,如果要在 Mac OS X 上面順利 build Erlang,你需要新增一個檔案 .kerlrc 在 $HOME (~) 底下,內容放上:

KERL_CONFIGURE_OPTIONS="--disable-hipe --enable-smp-support --enable-threads
                        --enable-kernel-poll  --enable-darwin-64bit"

下載 Erlang 發行版(releases)

下載一個發行版,你只要用下面這個指令:

kerl build <release> <build_name>
  • release 就是發行版本號(e.g. R15B03),可以透過 kerl list releases 來查詢有那些版本號是可以被下載的。
  • build_name 就是你要替你下載下來的 erlang 取個名字,這裏你可以直接用版本號來命名,或是用專案名稱。

舉個例子,如果你要用版本號來命名,那你只要

kerl build R15B03 r1503

或是

kerl build R15B03 r15

如果你要用 project 來命名,那就是

kerl build R15B03 sschat

安裝指定版本進去系統內

在上一步之後,你會下載並且 build 好一個或是多個 Erlang 的 release,接下來爲了要可以使用,你必須把他安裝在系統的某處來使用,安裝的指令如下:

kerl install <build_name> <location>

示範用安裝在 $HOME 底下的 erlang 底下爲例,

kerl install sschat ~/erlang/sschat

啓用某個版本

執行

source ~/erlang/sschat/activate

你就會被切到你所指定的 erlang 版本底下,接下來打 erl 來驗證你的版本是不是對的就好了。

如果要從目前這個環境離開,只要在終端機下面打 kerl_deactivate 就可以了。

幾個跟 Kerl 有關的資源:

如果你有朋友寫 Erlang,請 share 給他看。

如果你就寫 Erlang,歡迎在我的 Google+ 或是 FB 上與我交流。

comments powered by Disqus