# Centos 用Kerl安装及管理Erlang

# 1.安装依赖

yum -y update
1
yum -y install make 
yum -y install gcc 
yum -y install gcc-c++ 
yum -y install kernel-devel 
yum -y install m4 
yum -y install ncurses-devel 
yum -y install openssl-devel 
yum -y install rsync 
yum -y install perl-net-snmp 
yum -y install wx 
yum -y install fop 
yum -y install net-snmp 
yum -y install unixODBC 
yum -y install unixODBC-devel 
yum -y install lrzsz 
yum -y install bc 
yum -y install sysstat 
yum -y install lsof 
yum -y install wget 
yum -y install xz  
yum -y install automake 
yum -y install autoconf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 2.安装kerl

root@SummerGao:/home/summergao#
1

安装位置:

cd /home/summergao/kerl
1

下载

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

修改执行权限

chmod a+x kerl
1

# 3.配种环境变量

Win10 CentOS子系统配置方式:

sudo vim ~/.bashrc  
1

在打开的文件末尾添加:

export KERL_HOME=/home/summergao/kerl
export PATH=${KERL_HOME}/:$PATH
1
2

使配置生效:

source ~/.bashrc
1

原装CentOS配置方式

vim /etc/profile
1

在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL下面添加如下代码:

export KERL_HOME=/home/summergao/kerl
export PATH=${KERL_HOME}/:$PATH
1
2

使配置生效

source /etc/profile
1

验证环境变量是否配置成功

kerl version 
1

[root@SummerGao (opens new window) kerl]# kerl version
1.8.6
[root@SummerGao (opens new window) kerl]#

# 4.从erlang官网更新版本

kerl update releases
1

# 5.显示所有发布的版本

kerl list releases
1

# 6.构建指定的版本(默认使用Java编译,需要安装JDK及配置环境变量)

方式一、默认使用Java编译

kerl build 22.0 22.0
1

方式二、(取消java编译)使用gcc编译

KERL_CONFIGURE_OPTIONS=--without-javac kerl build 22.0 22.0
1

作为一个试验性功能, 还可以从git仓库构建

kerl build git https://github.com/erlang/otp.git dev 19.2_dev
1

构建需要一段时间建议耐心等待。

[root@SummerGao (opens new window) builds]# kerl build 22.0 22.0
Verifying archive checksum...
Checksum verified (9842663e49f48e967c44b7574423f9e9)
Extracting source code
Building Erlang/OTP 22.0 (22.0), please wait...
APPLICATIONS DISABLED (See: /root/.kerl/builds/22.0/otp_build_22.0.log)
 * jinterface     : No Java compiler found

APPLICATIONS INFORMATION (See: /root/.kerl/builds/22.0/otp_build_22.0.log)
 * wx             : wxWidgets not found, wx will NOT be usable

出现上面的信息则需要另开一个终端安装一下JD (opens new window)K (opens new window) JDK (opens new window)

JDK安装成功后会提示:

Erlang/OTP 22.0 (22.0) has been successfully built

下载安装包可能很慢,为此可以使用迅雷先把安装包下载下来,比如安装22.0: 首先访问 https://www.erlang.org/downloads/22.0 (opens new window) 找到 :OTP 22.0 Source File  (opens new window)(91806805) 右键复制链接地址到迅雷下载。下载完成之后复制(或上传)到 /root/.kerl/archives/ 目录下,重新执行第6步。

# 7.显示已构建版本

kerl list builds
1

显示的结果由,号分隔, 第一列为kerl list releases命令中列出的版本号, 第二列为构建名称, 该构建名字可以被后续的kerl install命令使用.

[root@SummerGao (opens new window) home]# kerl list builds
22.0,22.0
[root@SummerGao (opens new window) home]#

# 8.显示状态

kerl status
1

[root@SummerGao home]# kerl status
Available builds:
22.0,22.0
----------
Available installations:
There are no installations available
----------
No Erlang/OTP installation is currently active
[root@SummerGao home]#

# 9.安装特定版本

kerl install 22.0 ~/kerl/22.0
1

Installing Erlang/OTP 22.0 (22.0) in /root/kerl/22.0...
You can activate this installation running the following command:
.  /root/kerl/22.0/activate
Later on, you can leave the installation typing:
kerl_deactivate

安装需要一段时间请耐心等待

# 10.显示已安装版本

kerl list installations
1

# 11.激活特定版本

. /root/kerl/22.0/activate

1
2

激活将备份您的$ PATH,并将其添加到安装的bin /目录中。因此,它仅对当前shell会话有效,直到您激活另一个安装或调用kerl_deactivate。

# 12.查看已激活的Erlang版本

kerl active
1

[root@SummerGao home]# kerl active
The current active installation is:
/root/kerl/22.0
[root@SummerGao home]#

# 13.试运行erl

erl
1

[root@SummerGao home]# erl
Erlang/OTP 22 [erts-10.4] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Eshell V10.4  (abort with ^G)
1>

# 拓展:

# 14.删除特定的构建

kerl delete build 22.0
1

# 13.配置

你可以在命令行中执行构建的配置选项, 也可以在配置文件中进行配置

# ①配置编译选项

命令行通过编译参数指定, 如:

KERL_CONFIGURE_OPTIONS=--enable-hipe kerl build 22.0 22.0_hipe
1

②配置文件在$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"
1
2
3
4
5
6
7
8
9
10
11

# ③配置应用程序

构建一个最小的Erlang环境, 只包含kernel,stdlib,sasl三个应用程序

KERL_CONFIGURE_APPLICATIONS="kernel stdlib sasl" kerl build 22.0 22.0_minimal
1

# ④禁用应用程序

在构建的Erlang环境中排除ODBC应用

KERL_CONFIGURE_DISABLE_APPLICATIONS="odbc" kerl build 22.0 22.0_no_odbc
1

# ⑤安装Erlang

安装到指定的目录, 为了能够安装多个版本, 安装目录应该使用版本号进行标识

kerl install <build_name> <path>
1

例如

kerl install 22.0_hipe /tmp/erlang/22.0_hipe
1

# 15.部署

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

kerl deploy <[user@]host> [directory] [remote_directory]
1
kerl deploy test@192.168.1.100 /deploy/erlang/22.0_hipe
1

注意: 
要配置公钥能让ssh直接无密码登陆远程服务器
把公钥添加到远程服务器的$HOME/.ssh/authorized_key文件中即可
本地默认公钥位置为$HOME/.ssh/id_rsa.pub

更多配置请访问kerl官网:https://github.com/kerl/kerl (opens new window)

参考:https://segmentfault.com/a/1190000004909357 (opens new window)

Last Updated: 2/4/2020, 1:53:35 PM