Erlang目前已经是Fedora和Debian/Ubuntu软件仓库中的一部分。
Erlang目前最新的版本是OTP 17.0。Erlang是一种编程语言,用于构建大规模、高可伸缩性、高可用性的软实时系统的编程语言。它已经在电信、金融、电子商务、网络电话和即时消息中得到应用。Erlang的运行时系统已经内建了对并发、分布式和容错的支持。
OTP是Erlang库和设计原则的集合,提供了开发各种系统的中间件。它包含了自己的分布式数据库、面向其它编程语言的接口、调试和发布处理工具等。
BEAM是Erlang代码执行所需的虚拟机。Erlang代码编译后的扩展名为.beam。ERTS是Erlang的运行时系统,他包括了BEAM、内核和标准库等组件。
官方推荐从源码安装Erlang,因此下面开始从源码安装OTP 17.0。
下载OTP 17.0源码:http://www.erlang.org/download/otp_src_17.0.tar.gz
[html] view plaincopy
- # tar zvxf otp_src_17.0.tar.gz
- # mv otp_src_17.0/ otp
- # cd otp
- # ./configure --prefix=/home/erlang --without-javac
报错:
configure: error: No curses library functions found
configure: error: /bin/sh ‘/root/otp/erts/configure‘ failed for erts
[html] view plaincopy
- # yum -y install ncurses-devel
- # ./configure --prefix=/home/erlang --without-javac
报错
*********************************************************************
********************** APPLICATIONS DISABLED **********************
*********************************************************************
crypto : No usable OpenSSL found
jinterface : Java compiler disabled by user
odbc : ODBC library - link check failed
orber : No C++ compiler found
ssh : No usable OpenSSL found
ssl : No usable OpenSSL found
*********************************************************************
[html] view plaincopy
- # yum list | grep ssl
- # yum install openssl-devel
- # ./configure --prefix=/home/erlang --without-javac
报错
*********************************************************************
********************** APPLICATIONS DISABLED **********************
*********************************************************************
jinterface : Java compiler disabled by user
odbc : ODBC library - link check failed
orber : No C++ compiler found
*********************************************************************
[html] view plaincopy
- # yum list | grep ODBC
- # yum install unixODBC-devel
- # ./configure --prefix=/home/erlang --without-javac
报错
*********************************************************************
********************** APPLICATIONS DISABLED **********************
*********************************************************************
jinterface : Java compiler disabled by user
orber : No C++ compiler found
*********************************************************************
[html] view plaincopy
- # yum install gcc-c++
- # ./configure --prefix=/home/erlang --without-javac
- # make
- # make install
安装完成!
测试Erlang是否安装正确
[html] view plaincopy
- # /home/erlang/bin/erl
- Erlang/OTP 17 [erts-6.0] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]
- Eshell V6.0 (abort with ^G)
- 1> EvenN = lists:filter (fun (N) -> N rem 2 == 0 end, lists:seq(1,100)).
- [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,
- 44,46,48,50,52,54,56,58|...]
- 2> halt().
在PATH环境变量添加Erlang的bin路径,以便执行。
【安装总结】
从源码编译安装Erlang,有两个库或工具是必须的:
一是完整的GCC编译器环境
二是Ncurses开发库
还有一些库或工具,如果没有它们,在编译配置时会出现警告信息,而且可能不能通过配置。这些库有:
1)OpenSSL开发库
2)ODBC开发库
3)Java编译器