Windows x64 RabbitMQ устанавливает ошибку с окружением Erlang var (ERLANG_HOME)

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

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

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

Ответ 1

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

редактируя этот файл rabbitmq_server.bat, вы можете увидеть примерно по строке 48 или около того есть проверка, чтобы узнать, найден ли erl.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" 

С правильной траекторией будут запущены файлы .bat rabbitmq.

Ответ 2

1- Установить переменную среды:

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

Примечание: не следует включать бит на вышеописанном шаге.

2- Добавить %ERLANG_HOME%\bin в переменную окружения PATH:

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

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

Ответ 3

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

Ответ 4

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

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

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

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

Ответ 5

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

  • Обновить переменную пути "ERLANG_HOME" : "C:\Program Files\erl8.0" в переменных среды.
  • Верхняя переменная "Путь" "Path" : ";%ERLANG_HOME%\bin;"
  • Предоставьте разрешения urself ПОЛНОЕ УПРАВЛЕНИЕ через "Program Files" на диске C.

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

Ответ 6

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

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

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

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

Ответ 7

У меня была одна и та же проблема, упомянутая здесь. Я установил 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, чтобы решить эту проблему.

Ответ 8

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

Окно переменных среды 1.go

2.edit Элемент ERLANG_HOME

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

4.copy снова в блокноте и вставить для редактирования окна

Окно 5.apply и exit

6.Закройте инструменты командной строки и откройте

7.run rabbitmq bat файл.

Ответ 9

Я решил это быстро и грязно, не называя переменных пути, я открыл файл 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

Ответ 10

Даже у меня была эта проблема. Проблема заключалась в переменной среды ERLANG_HOME = c:\Program Files\erl9.0, которая никогда не существовала.

Я перекрестно проверил путь. Правильный путь был c:\Program Files\erl9.3.

После исправления

ERLANG_HOME = c:\Program Files\erl9.3

проблема решена. Так что, безусловно, это вопрос пути.

Ответ 11

Просто чтобы поделиться актуальным ответом по состоянию на 2019 год: В Windows Server 2019 после настройки переменной среды требуется перезагрузка для решения проблемы.

Ответ 12

Если вышеуказанные решения не работают для вас, то вы можете попробовать следующее

  1. Найдите другую совместимую версию erlang для вашего кролика mq, например, для rabbit 3.7.x. Erlang версии от 20.3.x до 22.0.x совместимы.

  2. Щелкните правой кнопкой мыши по вновь загруженной версии erlang и в свойствах выберите вариант, чтобы разблокировать файл.

  3. Запустите erlang с правами администратора.

  4. Re Run кролик MQ Exe