由于最终部署的生产环境是Centos,所以我需要在Centos中安装Erlang B13R04 ,第一次做这件事情破费周折,主要是对Erlang依赖的库不熟悉,总是编译不过;这里梳理一下安装过程中的细节:

    Erlang依赖哪些库?

  •      A fully working GCC compiler environment
  •      Ncurses development libraries
  •      OpenSSL development libraries (如果使用mysql必须安装)

    安装了这些库之后,必须要重新执行configure命令,configure之后会有提示哪些依赖的库没有安装,可以根据你的需要放弃安装一些库;上面的操作可以使用下面的命令实现:

    

> sudo yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
> wget
http://www.erlang.org/download/otp_src_R13B04.tar.gz
> tar xfvz otp_src_R13B04.tar.gz
> cd otp_src_R13B04/
> ./configure --with-ssl
> sudo make install

 

./configure 的时候会有很多选项其中 比较常用的是:


 --enable-smp-support - SMP support (enabled by default if a usable POSIX thread library or native Windows threads is found)
--enable-kernel-poll - Kernel poll support (enabled by default if possible)
--enable-hipe - HiPE support (enabled by default on supported platf

 

 注意,如果你遇到下面的错误

  

{error,
{load_failed,
"Failed to load NIF library: '/usr/local/lib/erlang/lib/crypto-2.0/priv/lib/crypto.so: undefined symbol: enif_make_new_binary'"}}

    那么极有可能是两个原因:

  •       没有安装OpenSSL
  •       你安装了多版本的Erlang,R14A和R13B04冲突造成的,删除erlang相关的文件夹,重新安装即可

 Crypto的类库可能多次折磨到你,如果在windows环境中遇到下面的错误:

application: crypto
exited: {shutdown,{crypto_app,start,[normal,[]]}}

  那基本上就是因为没有安装OpenSSL的原因,去下载一个Win32OpenSSL安装一下就可以解决,安装过程中按照默认一路next即可。 

  还需要提醒的是:在centos环境中,建议规划好服务器不要在root目录安装,否则你在make的时候就会遇到错误。