2016-04-19 4 views
3

LinuxマシンのRed Hat Enterprise Linux Serverリリース6.6にRabbitMQ(3.6.1)をインストールしようとしています。 RabbitMQのをインストールするには、最初に私はソースからアーランR16B03バージョン(otp_src_R16B03)がインストールされていると、以下に続くErlangインストールと "/usr/local/ssl/lib/libcrypto.a:シンボルを読み取れませんでした:不正な値"

wget http://www.erlang.org/download/otp_src_R16B03.tar.gz 
tar xvfz /usr/tmp/otp_src_R16B03.tar 
cd otp_src_R16B03 
LANG=C; export LANG 
./configure --with-ssl=/usr/bin 

コマンドIは、以下に示すメッセージが出ます:私はメイク&を続けても

********************************************************************* 
********************** APPLICATIONS DISABLED ********************** 
********************************************************************* 

crypto   : OpenSSL is configured for kerberos but no krb5.h found 
jinterface  : No Java compiler found 
odbc   : ODBC library - link check failed 
orber   : No C++ compiler found 
ssh   : OpenSSL is configured for kerberos but no krb5.h found 
ssl   : OpenSSL is configured for kerberos but no krb5.h found 

********************************************************************* 
********************************************************************* 
********************** APPLICATIONS INFORMATION ******************* 
********************************************************************* 

wx    : wxWidgets not found, wx will NOT be usable 
********************************************************************* 

をインストールしますが、 RabbitMQのサーバの起動時に、私はメッセージ

を取得、次のエラー

sbin/rabbitmq-server 

を取得します

BOOT FAILED 
=========== 

Error description: 
    {error,{missing_dependencies,[crypto,ssl],[mochiweb,cowlib,cowboy]}} 

Log files (may contain more information): 
    /usr/tmp/rabbitmq_server-3.6.1/var/log/rabbitmq/rabbit.log 
    /usr/tmp/rabbitmq_server-3.6.1/var/log/rabbitmq/rabbit-sasl.log 

Stack trace: 
    [{rabbit_plugins,ensure_dependencies,1, 
        [{file,"src/rabbit_plugins.erl"},{line,179}]}, 
    {rabbit_plugins,prepare_plugins,1, 
        [{file,"src/rabbit_plugins.erl"},{line,198}]}, 
    {rabbit,broker_start,0,[{file,"src/rabbit.erl"},{line,284}]}, 
    {rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,303}]}, 
    {init,start_it,1,[]}, 
    {init,start_em,1,[]}] 

{"init terminating in do_boot",{error,{missing_dependencies,[crypto,ssl],[mochiweb,cowlib,cowboy]}}} 

Crash dump was written to: erl_crash.dump 
init terminating in do_boot() 

複数のソリューションを検討した後、私は最新のOpensslをインストールし、新しくインストールしたopensslのパスを提供する必要があることを理解しました。

私は今、新たなopensslのは、ビン/ローカル/ SSLの場所にインストールされていると私は設定

export PATH="/usr/local/ssl/bin:$PATH” 
export CFLAGS=-fPIC 
cd /usr/tmp/otp_src_RB1603 
LANG=C; export LANG 
./configure --with-ssl=/usr/local/bin 
make 
make install 

以下でアーランを再インストールしたソースからOpenSSLをインストールし、-fPIC

wget https://www.openssl.org/source/openssl-1.0.2.tar.gz 
tar xvfz /usr/tmp/openssl-1.0.2.tar.gz 
cd /usr/tmp/openssl-1.0.2 
./config -fPIC 
make 
make install 

でインストール今すぐエラーが発生します

/usr/bin/ld: /usr/local/ssl/lib/libcrypto.a(rsaz_exp.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC 
/usr/local/ssl/lib/libcrypto.a: could not read symbols: Bad value** 
collect2: ld returned 1 exit status 
make[6]: *** [../priv/lib/x86_64-unknown-linux-gnu/crypto.so] Error 1 
make[6]: Leaving directory `/var/tmp/otp_src_R16B03/lib/crypto/c_src' 
make[5]: *** [release_spec] Error 2 
make[5]: Leaving directory `/var/tmp/otp_src_R16B03/lib/crypto/c_src' 
make[4]: *** [release] Error 2 
make[4]: Leaving directory `/var/tmp/otp_src_R16B03/lib/crypto/c_src' 
make[3]: *** [release] Error 2 
make[3]: Leaving directory `/var/tmp/otp_src_R16B03/lib/crypto/c_src' 
make[2]: *** [release] Error 2 
make[2]: Leaving directory `/var/tmp/otp_src_R16B03/lib/crypto' 
make[1]: *** [release] Error 2 
make[1]: Leaving directory `/var/tmp/otp_src_R16B03/lib' 
make: *** [install.libs] Error 2 

このエラーは解決できませんでしたまたは、どんな提案.. はあなたがsharedオプションでOpenSSLを構築する必要があり

+0

rmqのWebサイトからrpmパッケージをインストールできませんでしたか? – cantSleepNow

+0

ありがとう、それは働いた..私はerlang rpmファイルとrabbitmq.rpmファイルをインストール –

+0

あなたは歓迎です!私はこれを答えにします。 – cantSleepNow

答えて

0
/usr/bin/ld: /usr/local/ssl/lib/libcrypto.a(rsaz_exp.o): relocation R_X86_64_32 against `.rodata' 
can not be used when making a shared object; recompile with -fPIC 
/usr/local/ssl/lib/libcrypto.a: could not read symbols: Bad value** 
collect2: ld returned 1 exit status 

rootユーザーとして、私はアクセスするマシンを使用していますのでご注意ください。 64ビットIntelマシンの場合は、次のようなものかもしれません。

wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz 
tar xzf openssl-1.1.0b.tar.gz 
cd openssl-1.1.0b 

./Configure no-ssl2 no-ssl3 shared enable-ec_nistp_64_gcc_128 
... 
make -j 8 
... 
make test 
... 
suod make install 

enable-ec_nistp_64_gcc_128 ECのDiffie-Hellmanの2倍は速く4倍して作るが、それはいくつかの制限があります。 64ビットIntelマシンでも問題なく使用できます。 OpenSSL wikiのCompilation and Installation | Configure Optionsも参照してください。


また、OpenSSL 1.0.2以下の場合はmake dcleanにしてください。 OpenSSL 1.1.0以上の場合はmake distcleanです。それ以外の場合は、古い構成の一部がオプションを変更した後も残っています。

関連する問題