以前、私のブログの中で倹約マルチプラットフォームのインストールは倹約以下のdebian / Ubuntuのでは、インストール、およびアーランの開発を支援する方法について説明します。そして、CentOSのプラットフォームで、かつ正常にインストールされませんでした。試行錯誤の後、最後に成功し、このブログでは、コンパイルしてインストールCentOSの倹約の下で、開発支援のerlangを提供する方法です。
1.故障原因と解決策
私が遭遇した主な問題は、コンパイル済みの倹約が失敗したErlangのライブラリーを得たOpenSSL共有ライブラリを呼び出す際に暗号モジュールに障害が発生したアーラン、全体のコンパイル処理を続行できません。
ERL入力端子暗号で:開始()は、次の例を見ることができます
[root@localhost 6]# /usr/local/bin/erl
Erlang R16B03 (erts-5.10.4) [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V5.10.4 (abort with ^G)
1> crypto:start().
** exception error: undefined function crypto:start/0
2>
=ERROR REPORT==== 12-Jan-2014::00:06:29 ===
Unable to load crypto library. Failed with error:
"load_failed, Failed to load NIF library: '/usr/local/lib/erlang/lib/crypto-3.2/priv/lib/crypto.so: undefined symbol: EC_GROUP_new_curve_GF2m'"
OpenSSL might not be installed on this system.
=ERROR REPORT==== 12-Jan-2014::00:06:29 ===
The on_load function for module crypto returned {error,
{load_failed,
"Failed to load NIF library: '/usr/local/lib/erlang/lib/crypto-3.2/priv/lib/crypto.so: undefined symbol: EC_GROUP_new_curve_GF2m'"}}
あなたはこの問題が発生した場合、コンパイラは倹約のerlang開発サポートを提供できないことを確認してください。
あなたの暗号場合:()出力開始はokです、問題は発生しません。
$erl
Erlang R16B03 (erts-5.10.4) [source] [64-bit] [smp:3:3] [async-threads:10] [kernel-poll:false]
Eshell V5.10.4 (abort with ^G)
1> crypto:start().
ok
2>
同様の問題は、上記が生じるような、それはErlangの暗号モジュールは、OpenSSLダイナミックリンクライブラリと互換性がない可能性が高いがインストールされている場合、あなたは見ることができ、最新のOpenSSLダイナミックリンクライブラリの非互換性の問題と解決策をErlangの暗号モジュールの詳細情報については、 。
2溶液は、OpenSSL、または提供バイナリアーラン/ OTPパッケージアーランソリューションを再コンパイルされなければなりません。
私が遭遇したもう一つの小さな問題は、それが、R14よりも小さくすることができるコンパイラを通過するようになります、低いバージョンのErlang / OTPました。最新のerlang / OTP版の選択は、この問題はありません。
2.インストールアーラン/ OTP
倹約をインストールする前に、我々は最初のerlang / OTPをインストールする必要があります。ここでは、2つの方法で、元のインストール、およびErlangのソリューションのバイナリパッケージを使用することです。
2.1ソースのErlang / OTPをインストール
まず、コンパイルおよびOpenSSLをインストールし、私はここで選択したバージョンは、OpenSSL、1.0.0l.tar.gzです
wget -c http://www.openssl.org/source/openssl-1.0.0l.tar.gz
tar xzf openssl-1.0.0l.tar.gz
cd openssl-1.0.0l
./config
よると、最新のOpenSSLダイナミックリンクライブラリの非互換性の問題と解決策とErlangの暗号モジュール方式の編集Makefileを述べ、-fPICコンパイラオプションを追加
GCCの内部のvimで検索して、次の行を追加します。
添加が完了した後、我々は、インストールされてコンパイルすることができます:
make
make install
設定段階では、私は、デフォルトの設定を使用するので、opensslのインストールディレクトリは/ usr / local / sslの
そして、アーラン/ OTPをコンパイル
以下のCentOSでは依存関係のアーラン/ OTPのをインストールするには、次の2つのポストを参照してください、アーラン/ OTPをコンパイルします。
ソースコードコンパイラのインストールアーラン環境でシェルスクリプトCentOSの(Fedoraの)
さて、私たちは、上の移動します:
yum install -y kernel-devel m4 fop ncurses-devel tk unixODBC unixODBC-devel gcc gcc-c++
wget -c http://www.erlang.org/download/otp_src_R16B03.tar.gz
tar xzf otp_src_R16B03.tar.gz
cd otp_src_R16B03
configureの段階では、我々は、カスタムOpenSSLを指定します
./configure --with-ssl=/usr/local/ssl
make
make install
コンパイルとインストールアーラン/ OTPは、/ usr / localの以下で約20分、設置場所を過ごしました。
バイナリ2.2アーラン/ OTPパッケージには、Erlangのソリューションを提供しました
Erlangのソリューションは、プラットフォームのアーラン/ OTPバイナリパッケージ、非常に使いやすいの複数を提供します。
Erlangのソリューションは、インストールパッケージのerlang情報であり、ここで、JSファイルは、互換性の問題、LinuxでのChromeブラウザを持っているように見える、唯一のソース]タブを見ることができます。
問題の最上部に表示されます)(開始:なお、Erlangのソリューションは、アーラン/ OTPパッケージには、上記の暗号化などの問題であってもよいコンパイルします。我々が出会いの問題を使用する場合、我々は、上記のソースコードをコンパイルする方法に応じて設置することができます。
昨日の前だけで一日が、それはErlangのソリューションrpmパッケージを使用して、2014年1月10日である暗号が登場:失敗した現象()を起動する起動して、私はそれを修正する必要があるのCentOSのインストールパッケージのerlang昨日、更新検出この問題。フォトカード:
アーラン/ OTPをインストールするには、次のコマンドを使用します。
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
yum makecache
yum install -y erlang
3.ソースのコンパイラのインストール・倹約
手続きのフォロー倹約マルチプラットフォームのインストールほとんどコンパイルのDebian / Ubuntuのインストール倹約のを。
yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel xz git -y
git clone -b 0.9.1 https://github.com/apache/thrift thrift-0.9.1
cd thrift-0.9.1
./bootstrap.sh
configureファイルのエラーを生成する場合:
configure.ac:20: error: Autoconf version 2.65 or higher is required
configure.ac:20: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
autoscan: /usr/bin/autom4te failed with exit status: 63
案の定、いつか、まあ、我々は、インストールにautoconfを調達し続けます。
wget -c http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz
tar xJf autoconf-2.69.tar.xz
cd autoconf-2.69
./configure
make
make install
アップグレードのautoconf、実行bootstrap.sh後、警告の多数を促し、それでもの設定ファイルを生成します。かかわらず、警告の、我々は上に移動します:
./configure --with-cpp=no --with-python=no
make
make check
make install
エラーは、このように最終的には倹約のインストールを完了していません。
ます。https://my.oschina.net/u/191928/blog/618679で再現