Erlang版本管理工具: Kerl

首先給你們分享一個笑話, 這是程序員專用笑話, 祝各位開心!java

圖片描述

英語說明很簡單, 就是叫你如何畫一個貓頭鷹, 分爲兩個步驟:git

  • 第一步: 畫一些圓程序員

  • 第二部: 畫剩餘的部分github

安裝

安裝過程很是簡單, 兩行命令便可, 最好能把kerl添加到PATH環境變量中.服務器

下載

curl -O https://raw.githubusercontent.com/yrashk/kerl/master/kerl

修改執行權限

chmod a+x kerl

使用

顯示全部的發佈版本

kerl list releases

構建指定的版本

kerl build 18.3 18.3_default
KERL_CONFIGURE_OPTIONS=--enable-hipe kerl build 18.3 18.3_hipe

做爲一個試驗性功能, 還能夠從git倉庫構建

kerl build git https://github.com/erlang/otp.git master 20160411

顯示已構建版本

➜  kerl list builds
17.4,17.4
18.3,18.3
18.3,18.3_hipe

顯示的結果由,號分隔, 第一列爲kerl list releases命令中列出的版本號, 第二列爲構建名稱, 該構建名字能夠被後續的kerl install命令使用.ssh

顯示已經安裝的版本

➜  kerl list installations
17.4 /Users/tmp
18.3_hipe /Users/tmp

激活特定的版本

. /Users/tmp/activate

恢復到默認版本, 下面作個測試, 顯示erl的版本

➜  erl -version
Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 7.1

➜  . /Users/tmp/activate

➜  erl -version                    
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 7.3

➜  kerl_deactivate

➜  erl -version   
Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 7.1

顯示當前已經激活的Erlang版本: kerl active

➜  kerl active
No Erlang/OTP kerl installation is currently active

➜  . /Users/tmp/activate

➜  erlang-history git:(master) kerl active                     
The current active installation is:
/Users/tmp

顯示狀態: kerl status

➜  kerl status
Available builds:
17.4,17.4
18.3,18.3
18.3,18.3_hipe
----------
Available installations:
17.4 /Users/tmp
18.3_hipe /Users/tmp
----------
The current active installation is:
/Users/tmp

刪除特定的構建

上面17.4版本已經不是最新的版本, 爲了節約磁盤空間, 把它刪除curl

➜  kerl delete build 17.4
The 17.4 build has been deleted

➜  kerl status           
Available builds:
18.3,18.3
18.3,18.3_hipe
----------
Available installations:
17.4 /Users/tmp
18.3_hipe /Users/tmp
----------
The current active installation is:
/Users/tmp

配置

你能夠在命令行中執行構建的配置選項, 也能夠在配置文件中進行配置測試

配置編譯選項

命令行經過編譯參數指定, 如:ui

KERL_CONFIGURE_OPTIONS=--enable-hipe kerl build 18.3 18.3_hipe

配置文件在$HOME/.kerlrc指定url

# $HOME/.kerlrc
KERL_CONFIGURE_OPTIONS="\
--disable-debug \
--without-javac \
--enable-shared-zlib \
--enable-dynamic-ssl-lib \
--enable-hipe \
--enable-smp-support \
--enable-threads \
--enable-kernel-poll \
--with-wx"

配置應用程序

構建一個最小的Erlang環境, 只包含kernel,stdlib,sasl三個應用程序

KERL_CONFIGURE_APPLICATIONS="kernel stdlib sasl" kerl build 18.3 18.3_minimal

禁用應用程序

在構建的Erlang環境中排除ODBC應用

KERL_CONFIGURE_DISABLE_APPLICATIONS="odbc" kerl build 18.3 18.3_no_odbc

安裝Erlang

安裝到指定的目錄, 爲了可以安裝多個版本, 安裝目錄應該使用版本號進行標識

kerl install <build_name> <path>

例如

kerl install 18.3_hipe /tmp/erlang/18.3_hipe

部署

把指定Erlang構建版本部署到遠程服務器上, 這樣在一個集羣中, 咱們能夠在一個服務器上編譯, 統一部署全部的集羣節點的 Erlang 運行環境.

kerl deploy <[user@]host> [directory] [remote_directory]
kerl deploy test@192.168.8.100 /deploy/erlang/18.3_hipe

注意:
要配置公鑰能讓ssh直接無密碼登錄遠程服務器
把公鑰添加到遠程服務器的$HOME/.ssh/authorized_key文件中便可
本地默認公鑰位置爲$HOME/.ssh/id_rsa.pub

修訂

  • 2016-04-11 增長從git倉庫直接構建

  • 2016-07-29 安裝的時候安裝路徑應該是一個單獨的目錄, 最好按構建名稱命名例如
    kerl install 19.0_default ~/.kerl/installs/19.0_default, 不要把不一樣的構建安裝到一個目錄中, 不然沒法用 kerl delete 刪除指定的構建

相關文章
相關標籤/搜索