Windows x64 RabbitMQ install error with Erlang env

2019-02-04 18:27发布

I'm ask/answering this question because it hung me up & it's likely someone else will have the same problem.

Install of RabbitMQ x64 v2.8.6 on Windows Server 2008 x64.

After Erlang install using default install location to C:\Program Files\erl5.9.2, I'm attempting to start the server via running the rabbitmq-service.bat. Fail:

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

Problem is the .bat file does not have the correct subpath. with 5.9.2 (R15B02) version of erlang. My ERLANG_HOME directory is set correctly, but the script does not use it correctly for this version of Erlang, which, it appears to this Erlang noob to have a new subdirectory called "erts-5.9.2" which is causing the problems. Maybe someone intimate with these scripts can describe how to make this work correctly without the hack workaround I'm about to describe?

8条回答
ゆ 、 Hurt°
2楼-- · 2019-02-04 18:44

I had the similar issue, modifying ERLANG_HOME in .bat files did not work. Then I tried echo %ERLANG_HOME% in command prompt, that did not print the environment variable value(I could see that ERLANG_HOME environment variable has been created under advance system settings), that lead me to believe that I need to restart server for 64 bit installation of Erlang. After rebooting server, It worked like a charm. I hope this helps someone.

查看更多
Anthone
3楼-- · 2019-02-04 18:45

This problem still occurs in Erlang 18.3 (erl7.3) and RabbitMQ 3.6.9 on Windows when upgrading from any older version of RabbitMQ to version 3.6.9. The solution as already stated here is to manually set ERLANG_HOME with 'setx -m ERLANG_HOME "C:\Program Files\erl7.3"' before starting the service.

What happens is that the RabbitMQ 3.6.9 installer removes the environment variable ERLANG_HOME from the system while removing the older version of RabbitMQ. Then, when it proceeds to the installation step, it does not put back the ERLANG_HOME variable. Then, the batch files that start up RabbitMQ cannot find Erlang. They try to find Erlang's home directory using "where.exe" but it always fails after an upgrade.

RabbitMQ's installer also does not kill all of the Erlang background processes, causing many of its files to be undeletable due to the Windows "file in use" problem. This leaves behind "files in use" in %APPDATA%\RabbitMQ and "C:\Program Files\RabbitMQ." These processes are "erl.exe," "erlsrv.exe," and "epmd.exe." The RabbitMQ installer should taskkill these processes after shutting down the RabbitMQ Windows service.

RabbitMQ is rather clunky on Windows.

查看更多
smile是对你的礼貌
4楼-- · 2019-02-04 18:57

I just had the same problem mentioned here. I installed otp_win64_R15B02 on a Windows 7 machine and everything worked perfectly, but I used the same installer on a Windows 2008 server and the bin directory was not created. I then uninstalled otp_win64_R15B02 and downloaded the otp_win64_R15B02_with_MSVCR100_installer_fix and the bin directory was created.

I suspect the reason it worked on my Windows 7 system is that I have Visual Studio installed and the required libraries were already available which allowed the otp_win64_R15B02 installer to work correctly.

Oh, and if you're installing Erlang to run RabbitMQ the RabbitMQ install will succeed with the broken installer but installing otp_win64_R15B02_with_MSVCR100_installer_fix after RabbitMQ will not work, just un-install and re-install RabbitMQ to resolve this.

查看更多
地球回转人心会变
5楼-- · 2019-02-04 18:58

Interesting that this worked for you. There is record of a two bugs in Erl5.9.2 that cause an incomplete installation where %ERLANG_HOME%\bin is not installed.

Either of * Installed 64bit erlang on 32bit machine * "The program can't start because MSVCR100.dll is missing from your computer."

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

Try 5.9.1 or any other version. They also mention making the future versions of the installer alert you if it fails.

查看更多
混吃等死
6楼-- · 2019-02-04 18:59

1- Set environment variable:

Variable name : ERLANG_HOME
Variable value: C:\Program Files (x86)\erl6.4

note: don't include bin on above step.

2- Add %ERLANG_HOME%\bin to the PATH environmental variable:

Variable name : PATH
Variable value: %ERLANG_HOME%\bin

This works well.

查看更多
姐就是有狂的资本
7楼-- · 2019-02-04 19:03

I think this is encoding issue on windows.I see a correct value but I write echo %ERLANG_HOME% on console the value come with question mark. These steps fix it.

1.go environment variable window

2.edit ERLANG_HOME item

3.copy the value, open notepad and paste there

4.copy again on notepad and paste to edit window

5.apply and exit window

6.close command line tools and reopen

7.run rabbitmq bat file.

查看更多
登录 后发表回答