9

私はここの指示に従って、手紙を書きました。次に、アプリケーションプロジェクト構造を作成するための命令を実行しましたが、次のエラーが発生しました。

$ ./rebar create-app appid=myapp
Uncaught error in rebar_core: {'EXIT',
                              {undef,
                                  [{crypto,start,[]},
                                   {rebar_core,run,1},
                                   {rebar,main,1},
                                   {escript,run,2},
                                   {escript,start,1},
                                   {init,start_it,1},
                                   {init,start_em,1}]}}

私が間違っていることについて何か考えはありますか?

4

5 に答える 5

12

ErlangはOpenSSL(暗号モジュール)なしでコンパイルされたようです。多くの(ほとんど?)Erlangアプリケーションには暗号が必要です。暗号化モジュールが機能しているバージョンのErlangを入手する必要があります。そうすれば、このような問題は発生しないはずです。

于 2011-01-20T01:34:48.183 に答える
6

あなたの主張の明確化は有効な答えです(コメントが短すぎるため、答えとして追加します)。

Erlangが正しくコンパイルされたが、OpenSSLライブラリがErlangに表示されないため、暗号サーバーを起動できない可能性があります。Solaris 10でErlangをコンパイルしましたが、OpenSSLがインストールされていないことについて文句はありませんでした。実際、それは暗号をコンパイルし、それを以下にインストールしました:/usr/local/lib/erlang/lib/crypto-2.2/

しかし、Rebarはまだ機能していませんでした。問題が実際に暗号モジュールにあるかどうかを確認するのは簡単です。

Erlangシェルを開き、と入力しcrypto:start()ます。これは私のシステムで起こっていました:

bash-3.2# erl
Erlang R15B03 (erts-5.9.3.1) [source] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.9.3.1  (abort with ^G)
1> crypto:start().
** exception error: undefined function crypto:start/0
2>
=ERROR REPORT==== 8-Feb-2013::15:28:43 ===
Unable to load crypto library. Failed with error:
"load_failed, Failed to load NIF library: 'ld.so.1: beam.smp: fatal: relocation error: file /usr/local/lib/erlang/lib/crypto-2.2/priv/lib/crypto.so: symbol DES_ede3_cfb_encrypt: referenced symbol not found'"
OpenSSL might not be installed on this system.

=ERROR REPORT==== 8-Feb-2013::15:28:43 ===
The on_load function for module crypto returned {error,
                                                 {load_failed,
                                                  "Failed to load NIF library: 'ld.so.1: beam.smp: fatal: relocation error: file /usr/local/lib/erlang/lib/crypto-2.2/priv/lib/crypto.so: symbol DES_ede3_cfb_encrypt: referenced symbol not found'"}}

OpenCSWを使用してSolaris10にOpenSSLをインストールする場合のように、OpenSSLが非標準の場所にインストールされている場合は、環境変数にライブラリパスを追加することで問題を簡単に修正できます。たとえば、Solaris10から/etc / profileへ:

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/csw/lib
export LD_LIBRARY_PATH

次に、ログアウトしてログインするか、bash環境を再ロードします(例:次のようになります)。

bash-3.2# . /etc/profile

結果:

bash-3.2# erl
Erlang R15B03 (erts-5.9.3.1) [source] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.9.3.1  (abort with ^G)
1> crypto:start().
ok
于 2013-02-08T16:00:27.217 に答える
1

Erlang Solutionsから入手できるコンパイル済みのErlangを使用することをお勧めします:https ://www.erlang-solutions.com/downloads/download-erlang-otp

Windows用もあります。

于 2012-11-01T01:12:13.353 に答える
1

makeコマンドの実行時にこのエラーが発生する:

root@hs:/var/www/html/ejabberd-master# make
rm -rf deps/.got
rm -rf deps/.built
/usr/local/lib/erlang/bin/escript rebar get-deps && :> deps/.got
Uncaught error in rebar_core: {'EXIT',
                           {undef,
                            [{crypto,start,[],[]},
                             {rebar,run_aux,2,
                              [{file,"src/rebar.erl"},{line,163}]},
                             {rebar,main,1,
                              [{file,"src/rebar.erl"},{line,58}]},
                             {escript,run,2,
                              [{file,"escript.erl"},{line,757}]},
                             {escript,start,1,
                              [{file,"escript.erl"},{line,277}]},
                             {init,start_it,1,[]},
                             {init,start_em,1,[]}]}}
make: *** [deps/.got] Error 1

erlangの詳細は次のとおりです。

root@hs:/home/node# erl
Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [async-    threads:10] [hipe] [kernel-poll:false]

Eshell V7.0  (abort with ^G)
1> crypto:start()
1> 

コマンドが「OK」または「例外エラー」を与えるので、暗号が機能していないようです。

ヘルプが必要です。

于 2016-04-21T11:36:22.323 に答える
0

答えてくれてありがとうIvan。しかし、私は問題を理解したようです:ubuntuの自動更新がオフになり、erlang(libssh-devなど)のコンパイル中に依存関係がインストールされませんでした。自動更新がオンになると、コンパイルされ、makeコマンドが正常に実行されました。

于 2016-05-04T07:44:22.340 に答える