kerl只有一个目标:让我们在不同的OTP版本间随意切换。他是一个纯Bash项目。简单实用的工作利器!

Readme里面用法已说明得非常清楚了。建议按流程来一次。

1.下载

安装(一个bash脚本,根本就不用安装~)

 curl -O https://raw.githubusercontent.com/kerl/kerl/master/kerl&chmod a+x kerl

2.工作原理

official Erlang website上得到所有的release包信息,然后再下载对应的release后安装到指定的目录下。你也可以使用KERL_BUILD_BACKEND=git

指定从official source code上下载源.

3.用法

./kerl
kerl: build and install Erlang/OTP
usage: ./kerl <command> [options ...] <command> Command to be executed Valid commands are:
build Build specified release or git repository
install Install the specified release at the given location
deploy Deploy the specified installation to the given host and location
update Update the list of available releases from your source provider
list List releases, builds and installations
delete Delete builds and installations
active Print the path of the active installation
plt Print Dialyzer PLT path for the active installation
status Print available builds and installations
prompt Print a string suitable for insertion in prompt
cleanup Remove compilation artifacts (use after installation)
version Print current version (current: 1.3.)

3.1 列出所有可用的release包

$ ./kerl list releases
R10B- R10B- R10B-1a R10B- R10B- R10B- R10B- R10B- R10B- R10B- R10B- R11B- R11B- R11B- R11B- R11B- R11B- R12B- R12B- R12B- R12B- R12B- R12B- R13A R13B01 R13B02- R13B02 R13B03 R13B04 R13B R14A R14B01 R14B02 R14B03 R14B04 R14B R14B_erts-5.8.1.1 R15B01 R15B02 R15B02_with_MSVCR100_installer_fix R15B03- R15B03 R15B R16A_RELEASE_CANDIDATE R16B01 R16B02 R16B03- R16B03 R16B 17.0-rc1 17.0-rc2 17.0 17.1 17.3 17.4 17.5 18.0 18.1 18.2 18.2. 18.3 19.0
Run './kerl update releases' to update this list from erlang.org

3.2 下载指定release包并编译

KERL_CONFIGURE_OPTIONS=--enable-hipe ./kerl build 19.0 19.0_hipe % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed         :: :: --:--:--   64.8M       :: :: :: 

要从官网上下70M的东西,erlang.org对中国区本来就慢,建议使用git源(KERL_BUILD_BACKEND=git)

3.3 查看现在有release包列表

./kerl list builds
17.4 17.4
19.0 .0_hipe

3.4 安装包

$./kerl install .0_hipe /usr/local/sbin/erl_19_0_hipe
Installing Erlang/OTP 19.0 (19.0) in /usr/local/sbin/erl_19_0...
You can activate this installation running the following command:
. /usr/local/sbin/erl_19_0/activate
Later on, you can leave the installation typing:
kerl_deactivate

稍等一会,就会提示你安装成功。

3.5 使用指定版本的OTP

如果想在当前的shell中使用安装好的上面19版本的OTP,只需要

$./usr/local/sbin/erl_19_0/activate

然后打开erlang shell试试看:

$erl
Erlang/OTP [erts-8.0] [source] [-bit] [smp::] [async-threads:] [kernel-poll:false]
Eshell V8. (abort with ^G)
>

成功在当前的shell中使用19的release啦。

如果不想使用了,也可以使用下面命令来禁用

kerl_deactivate

以上就是kerl的基本用法,有了它,你就可以在本机上装多个版本的erlang了。对要测试多个版本的工作太有用了。

4. 补充

可能有人也注意到了,这是从源码重新编译,可不可以更加方便的指定编译的参数,

而不是像上面在命令行中 KERL_CONFIGURE_OPTIONS=--enable-hipe。

这是可以的。

kerl在home下有一个.kerlrc(类似于.bashrc),比如我的

emacs ~/.kerlrc
KERL_CONFIGURE_OPTIONS="--disable-hipe --enable-smp-support --enable-threads --enable-kernel-poll --enable-darwin-64bit --with-ssl=/usr/local/Cellar/openssl/1.0.2h_1"

除了这个configure options外,还有很多项都可以在.kerlrc中配置(可以在readme中找到详细的说明),方便又不缺乏灵活。

kerl在home下有一个.kerl(类似于.ssh目录)

cd ~/.kerl && ls
archives builds otp_builds otp_builds-e otp_installations otp_releases

这里就是kerl命令存放release和存install数据的地方。

5. 资源

5.1 elixir也有对应的项目叫kiex

5.2 kerl甚至可以deploy到远程的服务器上安装,只要你配置好ssh key,虽然没有用到,但是这也太炫酷啦。

5.3 basho使用kerl安装的文档:http://docs.basho.com/riak/kv/2.1.4/setup/installing/source/erlang/#kerl-prerequisites

If my fingers were erlang processes~

[Erlang36]kerl轻松管理安装各种OTP版本的更多相关文章

  1. Windows下安装nvm管理多个nodejs版本

    平常在工作中难免会有node版本的要求,下面介绍一种利用nvm工具管理多个node版本的方法 下载安装 Github: Download nvm-windows --- nvm-setup.zip 程 ...

  2. centos 安装最新稳定版本docker

    直接yum安装的docker版本是 : docker --versionDocker version 1.12.6, build 85d7426/1.12.6 一些新特性需要安装最新的稳定版本 国内可 ...

  3. Mac下同时安装多个版本的JDK

    JDK8 GA之后,小伙伴们喜大普奔,纷纷跃跃欲试,想体验一下Java8的Lambda等新特性,可是目前Java企业级应用的主打版本还是JDK6, JDK7.因此,我需要在我的电脑上同时有JDK8,J ...

  4. 【转】SVN管理多个项目版本库

    转载地址:http://blog.163.com/zhangxuemin_zy/blog/static/10178565520115704031799/ SVN管理多个项目版本库:   安装SVN服务 ...

  5. Git版本控制工具(一)----git的安装及创建版本库

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  6. Java反编译器安装及各版本介绍

    JAVA语言是1995年5月由SUN公司发布的,由于其安全性高.代码优化.跨平台等特性,迅速取代了很多传统高级语言,占据了企业级网络应用开发等诸多领域的霸主地位.         不过,JAVA最突出 ...

  7. Python包管理工具和多版本环境管理

    1. Python包管理工具 在安装Python包的过程中,经常涉及到distutils.setuptools.distribute.setup.py.easy_install.easy_instal ...

  8. Python关键点笔记之使用 pyenv 管理多个 Python 版本依赖环境

    0x00 背景 从接触Python以来,一直都是采用virtualenv和virtualenvwrapper来管理不同项目的依赖环境,通过workon.mkvirtualenv等命令进行虚拟环境切换, ...

  9. win10下通过Anaconda安装TensorFlow-GPU1.3版本,并配置pycharm运行Mnist手写识别程序

    折腾了一天半终于装好了win10下的TensorFlow-GPU版,在这里做个记录. 准备安装包: visual studio 2015: Anaconda3-4.2.0-Windows-x86_64 ...

随机推荐

  1. Bootstrap-Other:可视化布局

    ylbtech-Bootstrap-Other:可视化布局 1.返回顶部 1. 2. 2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 1. http://www.runoob.co ...

  2. 利用PHP实现页面跳转同时POST传参,CURL不行

    function payto(){ echo "<form style='display:none;' id='form1' name='form1' method='post' ac ...

  3. samba性能调优

    不知道有多少公司的内部打印及文件服务器是用的Linux,我想肯定不会太多,因为Windows实现起来更方便,更快速,当然,Windows也 是更Danger. 因为Windows有太多不确定性的东西, ...

  4. Servlet类源码说明

    servlet是学习java web不可不懂的一个类,网上各种教程都参杂太多,每次理解都感觉像把别人吐出来的食物再放在嘴里咀嚼,小编一怒之下,直接打开源码,原汁原味的芬芳扑面而来: /** * Def ...

  5. 使用TCPDF输出完美的中文PDF文档

    TCPDF是一个用于快速生成PDF文件的PHP5函数包.TCPDF基于FPDF进行扩展和改进.支持UTF-8,Unicode,HTML和XHTML.在基于PHP开发的Web应用中,使用它来输出PDF文 ...

  6. 12 MySQL--内置功能介绍

    mysql内置功能: 1.视图 2.触发器 3.存储过程 4.事务 5.函数 6.函数流程控制 一.视图 介绍: 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名] ...

  7. 初认识ZK

    转自:https://www.jianshu.com/p/8e322462bcca 前言: 前段时间做了sdk直播服务,由于给游戏接入,所以必须要考虑并发性能问题,大家知道直播聊天,房间人数多了的话是 ...

  8. 7.25 9figting!

    TEXT 87 Fund management基金管理   A Miller's tale 米勒传奇(陈继龙编译) Dec 7th 2006 From The Economist print edit ...

  9. WeakHashMap, NOT A CACHE

    Overview Base Map的实现 基于WeakReference的Entity实现 基于Reference和ReferenceQueue实现 它的弱引用是键,而不是值 它的key会被全自动回收 ...

  10. python 安装pyqt4

    yum install PyQt4-devel yum install qtwebkit-devel pip install PySide