?由于最終部署的生產環境是Centos,所以我需要在Centos中安裝Erlang B13R04?,第一次做這件事情破費周折,主要是對Erlang依賴的庫不熟悉,總是編譯不過;這里梳理一下安裝過程中的細節:
??? Erlang依賴哪些庫?
- ? ? ?A fully working?GCC?compiler environment
- ? ? ?Ncurses?development libraries
- ? ? ?OpenSSL?development libraries (如果使用mysql必須安裝)
? ? 安裝了這些庫之后,必須要重新執行configure命令,configure之后會有提示哪些依賴的庫沒有安裝,可以根據你的需要放棄安裝一些庫;上面的操作可以使用下面的命令實現:
? ??
> 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
?
?注意,如果你遇到下面的錯誤:
??
{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環境中遇到下面的錯誤:
exited:?{shutdown,{crypto_app,start,[normal,[]]}}
? 那基本上就是因為沒有安裝OpenSSL的原因,去下載一個Win32OpenSSL安裝一下就可以解決,安裝過程中按照默認一路next即可。?
? 還需要提醒的是:在centos環境中,建議規劃好服務器不要在root目錄安裝,否則你在make的時候就會遇到錯誤。 ? ?