天天看點

[Erlang 0004] Centos 源代碼編譯 安裝 Erlang

 由于最終部署的生産環境是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的時候就會遇到錯誤。