web-dev-qa-db-ja.com

Erlang環境変数(ERLANG_HOME)でのWindows x64 RabbitMQインストールエラー

私が電話を切ったのは私がこの質問をしている/答えている、そして他の誰かが同じ問題を抱えている可能性が高いからだ。

Windows Server 2008 x64へのRabbitMQ x64 v2.8.6のインストール。

デフォルトのインストール場所を使用してErlangをC:\ Program Files\erl5.9.2にインストールした後、rabbitmq-service.batを実行してサーバーを起動しようとしています。不合格:

Please either set ERLANG_HOME to point to your Erlang installation 
or place the RabbitMQ server distribution in the Erlang lib folder.

問題は、.batファイルに正しいサブパスがないことです。 5.9.2(R15B02)バージョンのerlang。私のERLANG_HOMEディレクトリーは正しく設定されていますが、スクリプトはこのバージョンのErlangに対してそれを正しく使用していません。このため、このErlang noobには「erts-5.9.2」という新しいサブディレクトリーがあり、問題を引き起こしているようです。たぶん、これらのスクリプトに詳しい人が、これから説明するハック回避策なしでこれを正しく動作させる方法を説明できるでしょうか?

21
Kevin Won

WindowsにはいくつかのRabbitMQコントロール.batファイルがあります。使用するものはすべて、Erlangパスを正しく反映するように変更する必要があります。この例では、rabbitmq-server.batを編集しています。これは簡単なものの1つです...実行する.batファイルには、rabbitmq_service.batファイルを使用して動作させるためにこのハックが必要になります。調整に最も関与しています。

そのrabbitmq_server.batファイルを編集すると、約48行目でerl.exeが見つかったかどうかを確認するチェックが表示されますが、パスが正しくありません。

if not exist "!ERLANG_HOME!\bin\erl.exe" (

そのパスは、Erlangの5.9.2バージョンのファイル構造と一致しません。このパスチェックを約48行目から58行目まで削除することで、これを修正しました。そこで、.batは、実際には、約129行目のerl.exeを呼び出します。

"!ERLANG_HOME!\bin\erl.exe" 

私は単にerl.exeへのパスをハードコードしました:

"C:\Program Files\erl5.9.2\erts-5.9.2\bin\erl.exe" 

パスが正しい場合、rabbitmq .batファイルが実行されます。

18
Kevin Won

1-環境変数を設定します。

変数名:_ERLANG_HOME_
変数値:C:\Program Files (x86)\erl6.4

注:上記の手順でビンを含めないでください。

2- _%ERLANG_HOME%\bin_をPATH環境変数に追加します。

変数名:PATH
変数値:_%ERLANG_HOME%\bin_

これはうまくいきます。

8
John Davis

同様の問題があり、.batファイルのERLANG_HOMEの変更が機能しませんでした。次に、コマンドプロンプトでecho%ERLANG_HOME%を試してみましたが、環境変数の値が出力されませんでした(ERLANG_HOME環境変数が事前のシステム設定で作成されていることがわかります)。 Erlangの64ビットのインストールのためにサーバーを再起動する必要があります。サーバーを再起動した後、それは魅力のように働きました。これが誰かの役に立つことを願っています。

6
VRK

この問題は、Windows上のErlang 18.3(erl7.3)およびRabbitMQ 3.6.9でも、古いバージョンからupgradingの場合に発生します。 RabbitMQのバージョン3.6.9へのアップデート。ここですでに述べた解決策は、サービスを開始する前に 'setx -m ERLANG_HOME "C:\ Program Files\erl7."を使用してERLANG_HOMEを手動で設定することです。

何が起こるかというと、RabbitMQ 3.6.9インストーラーがシステムから環境変数ERLANG_HOMEを削除する一方で、RabbitMQの古いバージョンを削除することです。その後、インストール手順に進むと、ERLANG_HOME変数は戻されません。次に、RabbitMQを起動するバッチファイルはErlangを見つけることができません。彼らは "where.exe"を使用してErlangのホームディレクトリを見つけようとしますが、アップグレード後は常に失敗します。

RabbitMQのインストーラーもすべてのErlangバックグラウンドプロセスを強制終了しないため、Windowsの「使用中のファイル」の問題が原因で、そのファイルの多くが削除できなくなります。これにより、%APPDATA%\ RabbitMQおよび「C:\ Program Files\RabbitMQ」に「使用中のファイル」が残ります。これらのプロセスは、「erl.exe」、「erlsrv.exe」、および「epmd.exe」です。 RabbitMQインストーラは、RabbitMQ Windowsサービスをシャットダウンした後、これらのプロセスをタスクキルする必要があります。

RabbitMQはWindowsではかなり扱いにくいです。

2
Kriston

私も同じような問題に遭遇しました。以下の3つの変更を行うことで解決しました。

  1. 環境変数のパス変数"ERLANG_HOME" : "C:\Program Files\erl8.0"を更新します。
  2. 更新された「パス」変数"Path" : ";%ERLANG_HOME%\bin;"
  3. 自分を与える フルコントロール Cドライブの"Program Files"に対する権限。

それは私にとってこのように機能しました。

1
Farid Khan

ここで述べたのと同じ問題が発生しました。 Windows 7マシンにotp_win64_R15B02をインストールし、すべてが完全に機能しましたが、Windows 2008サーバーで同じインストーラーを使用しましたが、binディレクトリーは作成されませんでした。次に、otp_win64_R15B02をアンインストールし、otp_win64_R15B02_with_MSVCR100_installer_fixをダウンロードして、binディレクトリを作成しました。

私のWindows 7システムで機能した理由は、Visual Studioがインストールされていて、otp_win64_R15B02インストーラーが正しく機能するために必要なライブラリがすでに利用可能だったためだと思います。

そして、ErlangをインストールしてRabbitMQを実行している場合、RabbitMQのインストールは壊れたインストーラーで成功しますが、RabbitMQの後にotp_win64_R15B02_with_MSVCR100_installer_fixをインストールしても機能しません。これを解決するには、RabbitMQをアンインストールして再インストールするだけです。

1
ShaneH

2019年の最新の回答を共有するためだけに:Windows Server 2019では、環境変数を設定した後、問題を解決するために再起動が必要です。

1
l001d

これがあなたのために働いたことは興味深いです。 Erl5.9.2には2つのバグがあり、インストールが不完全なため、%ERLANG_HOME%\binがインストールされていません。

* 32ビットのマシンに64ビットのerlangをインストール* "MSVCR100.dllがコンピュータにないため、プログラムを起動できません。"

https://groups.google.com/d/topic/erlang-programming/wGtFLzapiQ0/discussion

5.9.1またはその他のバージョンをお試しください。彼らはまた、インストーラーの将来のバージョンが失敗した場合に警告するようにすることについて言及しています。

1
KCD

私の場合、管理者の役割を実行してアーランをインストールする必要があります

0
zhaoyou

私もこの問題でした。問題は、存在しない環境変数ERLANG_HOME = c:\ Program Files\erl9.0でした。

パスをクロスチェックしました。正しいパスはc:\ Program Files\erl9.3でした。

修正後

ERLANG_HOME = c:\ Program Files\erl9.3

問題は解決しました。だから、間違いなくそれは道の問題です。

0
santosh kumar

これはWindowsでのエンコードの問題だと思います。正しい値が表示されますが、コンソールにエコー%ERLANG_HOME%と書き込みます。値には疑問符が付いています。これらのステップはそれを修正します。

1.go環境変数ウィンドウ

2. ERLANG_HOMEアイテムを編集する

3.値をコピーしてメモ帳を開き、そこに貼り付けます

4.メモ帳でもう一度コピーし、編集ウィンドウに貼り付けます

5.適用して終了ウィンドウ

6.コマンドラインツールを閉じて再度開く

7. rabbitmq batファイルを実行します。

0
Erkan

パス変数に名前を付けることなく、すばやく簡単に解決しました.batファイルを開いて、すべての発生を置き換えました

!ERLANG_HOME!\bin\erl.exe

ハードコードされたパスの例バージョンが異なるため、パスが異なる場合があります

C:\Program Files\erl10.3\erts-10.3\bin\erl.exe

そして交換された

%RABBITMQ_HOME%\escript\rabbitmq-plugins

C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.14\escript\rabbitmq-plugins
0
coder