2012-09-07 26 views
11

Estoy haciendo/respondiendo esta pregunta porque me colgó & es probable que alguien más tenga el mismo problema.Error de instalación de Windows x64 RabbitMQ con el entorno var de Erlang (ERLANG_HOME)

Instalación de RabbitMQ x64 v2.8.6 en Windows Server 2008 x64.

Después de instalar Erlang utilizando la ubicación de instalación predeterminada en C: \ Archivos de programa \ erl5.9.2, intento iniciar el servidor ejecutando rabbitmq-service.bat. Error:

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

El problema es que el archivo .bat no tiene la subruta correcta. con la versión 5.9.2 (R15B02) de erlang. Mi directorio ERLANG_HOME está configurado correctamente, pero el script no lo usa correctamente para esta versión de Erlang, que a este novato de Erlang le parece que tiene un nuevo subdirectorio llamado "erts-5.9.2" que está causando los problemas. Tal vez alguien íntimo con estos scripts puede describir cómo hacer que esto funcione correctamente sin la solución de hackeo que estoy a punto de describir.

Respuesta

11

Hay varios archivos .bat de control RabbitMQ en Windows. Todos los que use deben cambiarse para reflejar correctamente la ruta de Erlang. En este ejemplo, estoy editando el rabbitmq-server.bat porque es uno de los más fáciles ... cualquiera de los archivos .bat que quiera ejecutar necesitará este truco para que funcionen, con el archivo rabbitmq_service.bat siendo el más involucrado para adaptarse

editar ese archivo rabbitmq_server.bat, se puede ver en línea sobre 48 o así que hay una comprobación para ver si se encuentra la erl.exe, pero el camino no es correcto:

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

ese camino no coincide con la estructura de archivos para la versión 5.9.2 de Erlang. Me fijo este por la simple eliminación de esta comprobación camino desde aproximadamente la línea 48 a 58, a continuación, donde el .bat en realidad hace una llamada a la erl.exe en alrededor de la línea 129 que lee:

"!ERLANG_HOME!\bin\erl.exe" 

simplemente I hardcoded el camino a mi erl.exe:

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

Con la ruta correcta, se ejecutarán los archivos rabbitmq .bat.

+0

Antes de editar los archivos .bat, sugiero verificar la variable ERLANG_HOME en las variables de entorno. De alguna manera, el instalador de erlang lo configuró con un error tipográfico. Use el Explorador de Windows para copiar la ruta y péguela para que quede bien cuando se inserte en esta expresión "! ERLANG_HOME! \ Bin \ erl.exe" (evite \\ por ejemplo) – Andrei

+0

Su ERLANG_HOME probablemente sea C: \ Archivos de programa \ erl5.9.2, y simplemente cambiando a C: \ Program Files \ erl5.9.2 \ erts-5.9.2, debería haber resuelto el problema. El punto principal es que RabbitMQ y probablemente cualquier otra cosa que use erlang esperan que la carpeta de inicio sea el padre de "bin", por lo que debes asegurarte de que las variables apuntan a esa carpeta para aplicaciones felices. – eselk

1

Interesante que esto funcionó para usted. Hay un registro de dos errores en Erl5.9.2 que causan una instalación incompleta donde %ERLANG_HOME%\bin no está instalado.

Cualquiera de * Erlang de 64 bits instalado en la máquina de 32 bits * "El programa no puede iniciarse porque MSVCR100.dll falta en su computadora."

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

Trate 5.9.1 o cualquier otra versión. También mencionan hacer que las versiones futuras del instalador lo alerten si falla.

0

Acabo de tener el mismo problema mencionado aquí. Instalé otp_win64_R15B02 en una máquina con Windows 7 y todo funcionó a la perfección, pero utilicé el mismo instalador en un servidor de Windows 2008 y no se creó el directorio bin. Luego desinstalé otp_win64_R15B02 y descargué otp_win64_R15B02_with_MSVCR100_installer_fix y se creó el directorio bin.

Sospecho que la razón por la que funcionó en mi sistema Windows 7 es que tengo instalado Visual Studio y las bibliotecas requeridas ya estaban disponibles, lo que permitió que el instalador otp_win64_R15B02 funcionara correctamente.

Ah, y si está instalando Erlang para ejecutar RabbitMQ, la instalación RabbitMQ tendrá éxito con el instalador roto, pero instalando otp_win64_R15B02_with_MSVCR100_installer_fix después de que RabbitMQ no funcione, simplemente desinstale y vuelva a instalar RabbitMQ para resolver esto.

2

Tuve el problema similar, la modificación de ERLANG_HOME en archivos .bat no funcionó. Luego probé echo% ERLANG_HOME% en el símbolo del sistema, que no imprimió el valor de la variable de entorno (pude ver que la variable de entorno ERLANG_HOME se había creado en la configuración avanzada del sistema), que me llevó a creer que necesito reiniciar el servidor para Instalación de 64 bits de Erlang. Después de reiniciar el servidor, funcionó como un encanto. Espero que esto ayude a alguien.

1

1- Establecer variable de entorno:

Nombre de la variable: ERLANG_HOME
Valor de variable: C:\Program Files (x86)\erl6.4

nota: no incluye bin en el paso anterior.

2- Agregar %ERLANG_HOME%\bin a la variable ambiental PATH:

Nombre de la variable: PATH
Valor de variable: %ERLANG_HOME%\bin

Esto funciona bien.

0

Tengo el mismo tipo de problema. Lo resolví haciendo tres cambios como se indica a continuación.

  1. Actualización Ruta variable "ERLANG_HOME" : "C:\Program Files\erl8.0" en Variables de entorno.
  2. Upadte variable "Path" "Path" : ";%ERLANG_HOME%\bin;"
  3. Dar Urself control total permisos sobre "Program Files" en la unidad C.

Funcionó para mí de esta manera.

0

Creo que esto es un problema de codificación en windows. Veo un valor correcto pero escribo echo% ERLANG_HOME% en la consola el valor viene con signo de interrogación. Estos pasos lo arreglan.

1.Go variable de entorno de ventanas

elemento 2.Edit ERLANG_HOME

3.Copia el valor, la libreta abierta y pegar allí

4.Copie de nuevo el bloc de notas y pegar para editar ventana

5.apply y ventanas de salida

6.Cierre herramientas de línea de comandos y abrir de nuevo

7.run rabbitmq bat archivo.

0

Este problema persiste en Erlang 18.3 (erl7.3) y RabbitMQ 3.6.9 en Windows cuando actualizar desde cualquier versión anterior de RabbitMQ a la versión 3.6.9. La solución, como ya se ha indicado aquí, es establecer manualmente ERLANG_HOME con 'setx -m ERLANG_HOME "C: \ Archivos de programa \ erl7.3' 'antes de iniciar el servicio.

Lo que sucede es que el instalador de RabbitMQ 3.6.9 elimina la variable de entorno ERLANG_HOME del sistema al eliminar la versión anterior de RabbitMQ. Luego, cuando continúa con el paso de instalación, no vuelve a colocar la variable ERLANG_HOME. Entonces, los archivos por lotes que inician RabbitMQ no pueden encontrar Erlang. Intentan encontrar el directorio de inicio de Erlang usando "where.exe", pero siempre falla después de una actualización.

El instalador de RabbitMQ tampoco elimina todos los procesos en segundo plano de Erlang, lo que hace que muchos de sus archivos no se puedan recuperar debido al problema de "archivo en uso" de Windows. Esto deja "archivos en uso" en% APPDATA% \ RabbitMQ y "C: \ Archivos de programa \ RabbitMQ". Estos procesos son "erl.exe", "erlsrv.exe" y "epmd.exe". El instalador RabbitMQ debe ejecutar estos procesos después de cerrar el servicio RabbitMQ de Windows.

RabbitMQ es bastante torpe en Windows.

Cuestiones relacionadas