且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Windows x64 RabbitMQ安装错误与Erlang环境var(ERLANG_HOME)

更新时间:2022-10-14 21:42:41

Windows上有几个RabbitMQ控件.bat文件。您使用的每一个都需要更改以正确反映Erlang路径。在这个例子中,我正在编辑rabbitmq-server.bat,因为它是更容易的一个。任何想要运行的.bat文件都需要这个hack才能使它们工作,使用rabbitmq_service.bat文件是最需要调整的。



编辑rabbitmq_server.bat文件,你可以看到关于第48行还有一个检查,看看是否找到了erl.exe ,但路径不正确:

 如果不存在!ERLANG_HOME!\bin\erl.exe( 

该路径与5.9版本的Erlang的文件结构不匹配,只需从第48行到第58行删除此路径检查,那么.bat实际上会在第129行上调用erl.exe,其内容如下:

 !ERLANG_HOME!\bin\erl.exe

我只是硬编码到我的erl.exe的路径:

 C:\Program Files\erl5.9.2\erts -5.9.2\b in\erl.exe

随着路径正确,将会运行rabbitmq .bat文件。 / p>

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?

There are several RabbitMQ control .bat files on windows. Every one you use needs to get changed to reflect the Erlang path correctly. In this example, I'm editing the rabbitmq-server.bat because it's one of the easier ones... any of the .bat files you want to run will need this hack to get them to work, with the rabbitmq_service.bat file being the most involved to adjust.

editing that rabbitmq_server.bat file, you can see on about line 48 or so there's a check to see if the erl.exe is found, but the path isn't correct:

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

that path does not match the file structure for the 5.9.2 version of Erlang. I fixed this by simply removing this path check from about line 48 to 58, then, where the .bat actually makes a call to the erl.exe on about line 129 which reads:

"!ERLANG_HOME!\bin\erl.exe" 

I simply hardcoded the path to my erl.exe:

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

With the pathing correct, the rabbitmq .bat files will run.