Ошибка установки Windows x64 RabbitMQ с помощью среды Erlang var (ERLANG HOME)

Я спрашиваю/отвечаю на этот вопрос, потому что он повесил меня, и, вероятно, у кого-то еще будет такая же проблема.

установка RabbitMQ x64 v2.8.6 в Windows Server 2008 x64.

после установки Erlang с помощью места установки по умолчанию C:Program файлыerl5.9.2, я пытаюсь запустить сервер с помощью запуска rabbitmq-service.летучая мышь. Fail:

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_HOME установлен правильно, но скрипт не использует его правильно для этой версии Erlang, которая, как представляется этому Erlang noob, имеет новый подкаталог под названием "erts-5.9.2", который вызывает проблемы. Может быть, кто-то близкий с этими сценариями может описать, как сделать эту работу правильно без обходного пути взлома, который я собираюсь описать?

8 ответов


есть несколько элементов управления RabbitMQ .файлы bat в windows. Каждый, который вы используете, должен быть изменен, чтобы правильно отразить путь Эрланга. В этом примере я редактирую rabbitmq-сервер.bat, потому что это один из самых простых... любой из них .bat файлы, которые вы хотите запустить, потребуется этот хак, чтобы заставить их работать, с rabbitmq_service.файл bat является наиболее вовлеченным в настройку.

редактирование этого rabbitmq_server.файл bat, вы можете увидеть на строке 48 или около того, есть чек на ли Эрл.exe найден, но путь неверен:

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

этот путь не соответствует структуре файла для версии 5.9.2 Erlang. Я исправил это, просто удалив эту проверку пути из строки 48 в 58, затем, где .летучая мышь действительно звонит в erl.exe о строке 129, которая гласит:

"!ERLANG_HOME!\bin\erl.exe" 

Я просто жестко закодировал путь к моему erl.exe:

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

С правильного маршрута, по RabbitMQ .bat файлы будут работать.


1 - установить переменную окружения:

имя переменной : ERLANG_HOME
Значение переменной: C:\Program Files (x86)\erl6.4

примечание: не включайте bin на вышеуказанном шаге.

2 - Добавить %ERLANG_HOME%\bin до PATH переменные среды:

имя переменной : PATH
Значение переменной: %ERLANG_HOME%\bin

это хорошо работает.


У меня была аналогичная проблема, модифицируя ERLANG_HOME .bat файлах не работает. Тогда я попробовал echo %ERLANG_HOME% в командной строке, которая не напечатала значение переменной среды (я видел, что переменная среды ERLANG_HOME была создана в разделе "предварительные системные настройки"), что заставляет меня поверить, что мне нужно перезапустить сервер для 64-битной установки Erlang. После перезагрузки сервера, он работал как шарм. Надеюсь, это кому-то поможет.


интересно, что это сработало для вас. Есть запись о двух ошибках в Erl5.9.2, которые вызывают неполную установку, где %ERLANG_HOME%\bin не установлен.

любой из * Установленный 64bit erlang на машине 32bit * "Программа не может запуститься, поскольку MSVCR100.dll отсутствует на вашем компьютере."

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

попробуйте 5.9.1 или любую другую версию. Они также упоминают о создании будущие версии программы установки предупреждают вас о сбое.


я попал в такую же проблему. Я решил это, сделав три изменения, как показано ниже.

  1. обновить переменную пути "ERLANG_HOME" : "C:\Program Files\erl8.0" Переменные среды.
  2. Upadte переменная "путь""Path" : ";%ERLANG_HOME%\bin;"
  3. дать себе ПОЛНЫЙ КОНТРОЛЬ разрешения "Program Files" на диске C.

это сработало для меня таким образом.


эта проблема по-прежнему возникает в Erlang 18.3 (erl7.3) и RabbitMQ 3.6.9 на Windows, когда обновление от любой старой версии RabbitMQ до версии 3.6.9. Решение, как здесь уже говорилось-установить вручную ERLANG_HOME с 'setx-m ERLANG_HOME "C:\Program файлы\erl7.3"' перед началом служения.

Что происходит, так это то, что установщик RabbitMQ 3.6.9 удаляет переменную среды ERLANG_HOME из системы при удалении более старая версия RabbitMQ. Затем, когда он переходит к шагу установки, он не возвращает переменную ERLANG_HOME. Затем пакетные файлы, которые запускают RabbitMQ, не могут найти Erlang. Они пытаются найти домашний каталог Эрланга, используя "где.ехе", но он всегда терпит неудачу после обновления.

установщик RabbitMQ также не убивает все фоновые процессы Erlang, в результате чего многие из его файлов не поддаются обработке из-за проблемы "файл в использовании" Windows. Это оставляет позади "используемые файлы" в %APPDATA%\RabbitMQ и "C:\Program файлы\RabbitMQ."Эти процессы" erl.exe", " erlsrv.exe, " и " epmd.исполняемый."Установщик RabbitMQ должен taskkill эти процессы после завершения работы службы RabbitMQ Windows.

RabbitMQ довольно неуклюжий в Windows.


У меня была та же упомянутая здесь проблема. Я установил otp_win64_R15B02 на машине Windows 7, и все работало отлично, но я использовал тот же установщик на сервере Windows 2008, и каталог bin не был создан. Затем я удалил otp_win64_R15B02 и загрузил otp_win64_R15B02_with_MSVCR100_installer_fix и был создан каталог bin.

Я подозреваю, что причина, по которой он работал в моей системе Windows 7, заключается в том, что у меня установлена Visual Studio и требуется библиотеки уже были доступны, что позволило установщику otp_win64_R15B02 работать правильно.

О, и если вы устанавливаете Erlang для запуска RabbitMQ, установка RabbitMQ завершится успешно со сломанным установщиком, но установка otp_win64_R15B02_with_MSVCR100_installer_fix после RabbitMQ не будет работать, просто снимите и переустановите RabbitMQ, чтобы решить эту проблему.


Я думаю, что это проблема кодирования в windows.Я вижу правильное значение, но я пишу echo %ERLANG_HOME% на консоли значение поставляется с вопросительным знаком. Эти шаги исправляют это.

1.перейти переменная окружения window

2.изменить элемент ERLANG_HOME

3.копировать значение, откройте блокнот и вставьте туда

4.скопируйте еще раз в блокнот и вставьте в окно редактирования

5.применить и выйти из окна

6.закройте средства командной строки и снова откройте

7.запустите файл rabbitmq bat.