web-dev-qa-db-fra.com

Erreur d'installation de Windows x64 RabbitMQ avec la variable d'environnement Erlang (ERLANG_HOME)

Je pose/réponds à cette question car cela m'a raccroché et il est probable que quelqu'un d'autre aura le même problème.

Installation de RabbitMQ x64 v2.8.6 sur Windows Server 2008 x64.

Après l'installation d'Erlang en utilisant l'emplacement d'installation par défaut dans C:\Program Files\erl5.9.2, j'essaie de démarrer le serveur en exécutant rabbitmq-service.bat. Échouer:

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

Le problème est que le fichier .bat n'a pas le sous-chemin d'accès correct. avec la version 5.9.2 (R15B02) d'erlang. Mon répertoire ERLANG_HOME est défini correctement, mais le script ne l'utilise pas correctement pour cette version d'Erlang, qui, il apparaît à ce noeud Erlang avoir un nouveau sous-répertoire appelé "erts-5.9.2" qui cause les problèmes. Peut-être que quelqu'un d'intime avec ces scripts peut décrire comment faire fonctionner correctement sans la solution de contournement de hack que je vais décrire?

21
Kevin Won

Il existe plusieurs fichiers .bat de contrôle RabbitMQ sur Windows. Tous ceux que vous utilisez doivent être modifiés pour refléter correctement le chemin Erlang. Dans cet exemple, je modifie le rabbitmq-server.bat parce que c'est l'un des plus faciles ... tous les fichiers .bat que vous souhaitez exécuter auront besoin de ce hack pour les faire fonctionner, avec le fichier rabbitmq_service.bat étant le plus impliqué à ajuster.

en éditant ce fichier rabbitmq_server.bat, vous pouvez voir à propos de la ligne 48 ou alors il y a une vérification pour voir si erl.exe est trouvé, mais le chemin n'est pas correct:

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

ce chemin ne correspond pas à la structure du fichier pour la version 5.9.2 d'Erlang. J'ai corrigé cela en supprimant simplement cette vérification de chemin d'environ 48 à 58, puis, où le .bat fait un appel à erl.exe sur la ligne 129 qui se lit comme suit:

"!ERLANG_HOME!\bin\erl.exe" 

J'ai simplement codé en dur le chemin vers mon erl.exe:

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

Avec le cheminement correct, les fichiers rabbitmq .bat s'exécuteront.

18
Kevin Won

1- Définir la variable d'environnement:

Nom de variable: ERLANG_HOME
Valeur variable: C:\Program Files (x86)\erl6.4

remarque: n'incluez pas le bac à l'étape ci-dessus.

2- Ajoutez %ERLANG_HOME%\bin À la variable d'environnement PATH:

Nom de variable: PATH
Valeur variable: %ERLANG_HOME%\bin

Cela fonctionne bien.

8
John Davis

J'ai eu le même problème, la modification de ERLANG_HOME dans les fichiers .bat n'a pas fonctionné. Ensuite, j'ai essayé echo% ERLANG_HOME% dans l'invite de commande, qui n'a pas imprimé la valeur de la variable d'environnement (j'ai pu voir que la variable d'environnement ERLANG_HOME a été créée sous des paramètres système avancés), ce qui m'amène à croire que je besoin de redémarrer le serveur pour l'installation 64 bits d'Erlang. Après le redémarrage du serveur, cela a fonctionné comme un charme. J'espère que ça aidera quelqu'un.

6
VRK

Ce problème se produit toujours dans Erlang 18.3 (erl7.3) et RabbitMQ 3.6.9 sur Windows lorsque mise à niveau à partir d'une ancienne version de RabbitMQ à la version 3.6.9. La solution comme déjà indiquée ici est de définir manuellement ERLANG_HOME avec 'setx -m ERLANG_HOME "C:\Program Files\erl7."' avant de démarrer le service.

Ce qui se passe, c'est que le programme d'installation de RabbitMQ 3.6.9 supprime la variable d'environnement ERLANG_HOME du système tout en supprimant l'ancienne version de RabbitMQ. Puis, lorsqu'il passe à l'étape d'installation, il ne remet pas la variable ERLANG_HOME. Ensuite, les fichiers batch qui démarrent RabbitMQ ne peuvent pas trouver Erlang. Ils essaient de trouver le répertoire personnel d'Erlang en utilisant "where.exe" mais il échoue toujours après une mise à niveau.

Le programme d'installation de RabbitMQ ne tue pas non plus tous les processus d'arrière-plan d'Erlang, provoquant la suppression de plusieurs de ses fichiers en raison du problème de "fichier en cours d'utilisation" de Windows. Cela laisse des "fichiers en cours d'utilisation" dans% APPDATA%\RabbitMQ et "C:\Program Files\RabbitMQ". Ces processus sont "erl.exe", "erlsrv.exe" et "epmd.exe". Le programme d'installation de RabbitMQ doit tuer ces processus après l'arrêt du service Windows RabbitMQ.

RabbitMQ est plutôt maladroit sous Windows.

2
Kriston

J'ai eu le même genre de problème. Je l'ai résolu en faisant trois changements comme indiqué ci-dessous.

  1. Mettre à jour la variable de chemin "ERLANG_HOME" : "C:\Program Files\erl8.0" dans les variables d'environnement.
  2. Upadte "Path" variable "Path" : ";%ERLANG_HOME%\bin;"
  3. Se donner CONTROLE TOTAL autorisations sur "Program Files" dans le lecteur C.

Cela a fonctionné pour moi de cette façon.

1
Farid Khan

Je viens d'avoir le même problème mentionné ici. J'ai installé otp_win64_R15B02 sur une machine Windows 7 et tout fonctionnait parfaitement, mais j'ai utilisé le même programme d'installation sur un serveur Windows 2008 et le répertoire bin n'a pas été créé. J'ai ensuite désinstallé otp_win64_R15B02 et téléchargé le otp_win64_R15B02_with_MSVCR100_installer_fix et le répertoire bin a été créé.

Je soupçonne que la raison pour laquelle cela a fonctionné sur mon système Windows 7 est que j'ai installé Visual Studio et que les bibliothèques requises étaient déjà disponibles, ce qui a permis au programme d'installation otp_win64_R15B02 de fonctionner correctement.

Oh, et si vous installez Erlang pour exécuter RabbitMQ, l'installation de RabbitMQ réussira avec le programme d'installation cassé, mais l'installation de otp_win64_R15B02_with_MSVCR100_installer_fix après que RabbitMQ ne fonctionnera pas, il suffit de désinstaller et de réinstaller RabbitMQ pour résoudre ce problème.

1
ShaneH

Juste pour partager une réponse à jour à partir de 2019: Sur Windows Server 2019, après avoir configuré la variable d'environnement, un redémarrage est nécessaire pour résoudre le problème.

1
l001d

Intéressant que cela ait fonctionné pour vous. Il y a un enregistrement de deux bogues dans Erl5.9.2 qui provoquent une installation incomplète où %ERLANG_HOME%\bin N'est pas installé.

Soit * Erlang 64 bits installé sur une machine 32 bits * "Le programme ne peut pas démarrer car MSVCR100.dll est absent de votre ordinateur."

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

Essayez 5.9.1 ou toute autre version. Ils mentionnent également que les futures versions du programme d'installation vous alerteront en cas d'échec.

1
KCD

Dans mon cas, il devrait être installé erlang en utilisant le rôle d'administrateur en cours d'exécution

0
zhaoyou

Même moi, j'étais ce problème. Le problème était la variable d'environnement ERLANG_HOME = c:\Program Files\erl9.0 qui n'a jamais existé.

J'ai croisé le chemin. Le chemin correct était c:\Program Files\erl9.3.

Après avoir corrigé le

ERLANG_HOME = c:\Program Files\erl9.3

le problème résolu. Donc, c'est définitivement un problème de chemin.

0
santosh kumar

Je pense que c'est un problème de codage sur Windows.Je vois une valeur correcte mais j'écris echo% ERLANG_HOME% sur la console, la valeur est accompagnée d'un point d'interrogation. Ces étapes le corrigent.

Fenêtre variable de l'environnement 1.go

2. modifier l'élément ERLANG_HOME

3. copiez la valeur, ouvrez le bloc-notes et collez-le

4. copiez à nouveau sur le bloc-notes et collez pour modifier la fenêtre

5. appliquer et quitter la fenêtre

6. fermez les outils de ligne de commande et rouvrez

7. exécutez le fichier de lapin rabbitmq.

0
Erkan

Je l'ai résolu d'une manière rapide et sale, sans nommer les variables de chemin, j'ai ouvert le fichier bat et remplacé chaque occurrence de

!ERLANG_HOME!\bin\erl.exe

avec un chemin codé en dur par exemple peut être un chemin différent pour vous en raison de la version différente

C:\Program Files\erl10.3\erts-10.3\bin\erl.exe

et remplacé

%RABBITMQ_HOME%\escript\rabbitmq-plugins

avec

C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.14\escript\rabbitmq-plugins
0
coder