Erlang版本管理工具: Kerl

首先给大家分享一个笑话, 这是程序员专用笑话, 祝各位开心!

Erlang版本管理工具: Kerl_第1张图片

英语说明很简单, 就是叫你如何画一个猫头鹰, 分为两个步骤:

  • 第一步: 画一些圆

  • 第二部: 画剩余的部分

安装

安装过程非常简单, 两行命令即可, 最好能把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  

例如

kerl install 18.3_hipe /tmp/erlang/18.3_hipe

部署

把指定Erlang构建版本部署到远程服务器上, 这样在一个集群中, 我们可以在一个服务器上编译, 统一部署所有的集群节点的 Erlang 运行环境.

kerl deploy <[user@]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 删除指定的构建

你可能感兴趣的:(git,运维)