天天看點

Erlang版本管理工具: Kerl

首先給大家分享一個笑話, 這是程式員專用笑話, 祝各位開心!

Erlang版本管理工具: Kerl

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

  • 第一步: 畫一些圓
  • 第二部: 畫剩餘的部分

安裝

安裝過程非常簡單, 兩行指令即可, 最好能把

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

指令使用.

顯示已經安裝的版本

➜  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

版本已經不是最新的版本, 為了節約磁盤空間, 把它删除

➜  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
           

配置

你可以在指令行中執行建構的配置選項, 也可以在配置檔案中進行配置

配置編譯選項

指令行通過編譯參數指定, 如:

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

配置檔案在

$HOME/.kerlrc

指定

# $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 <[[email protected]]host> [directory] [remote_directory]
           
kerl deploy [email protected] /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

    删除指定的建構