web-dev-qa-db-fra.com

Rails - Le système ne peut pas trouver le chemin spécifié

J'ai installé Rails et Ruby sous Windows avec railsinstaller. Le problème est que, lorsque j'exécute la commande Rails, il me donne: "Le système ne peut pas trouver le chemin spécifié."

Je suis sous Windows 7 x64 et Ruby 2.20.

J'ai essayé de désinstaller Rails et de l'installer à nouveau; cela n'aide pas. Ruby sont exécutées, comme Ruby -v, mais Rails -v= ne fonctionne pas.

55
Javid Askerov

Allez dans C:\RailsInstaller\Ruby2.2.0. Certains des fichiers .bat contiennent les éléments suivants:

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\Ruby.exe" "C:/Users/emachnic/GitRepos/railsinstaller-windows/stage/Ruby2.2.0/bin/tilt" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\Ruby.exe" "%~dpn0" %*

Supprimer cela et coller dans le texte ci-dessous:

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
ECHO.This version of Ruby has not been built with support for Windows 95/98/Me.
GOTO :EOF
:WinNT
@"%~dp0Ruby.exe" "%~dpn0" %*
101
Raymond R

Ceci est dû à un bogue dans RailsInstaller, où deux fichiers ont l'emplacement Ruby.exe Codé en dur pour fonctionner uniquement sur la machine du développeur de RailsInstaller. Dans C:\RailsInstaller\Ruby2.2.0\bin\Rails.bat (Il s'agit du dossier d'installation par défaut, vous pourriez avoir Rails.bat Ailleurs si vous avez choisi un dossier d'installation différent). Vous trouverez ces deux lignes:

@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\Ruby.exe" "C:/Users/emachnic/GitRepos/railsinstaller-windows/stage/Ruby2.2.0/bin/Rails" %1 %2 %3 %4 %5 %6 %7 %8 %9

@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\Ruby.exe" "%~dpn0" %*

L'utilisateur emachnic est le développeur RailsInstaller. Pour contourner le problème, vous pouvez remplacer ces dossiers par ceux de votre ordinateur. Pour le dossier d'installation par défaut, vous devez les modifier en:

@"C:\RailsInstaller\Ruby2.2.0\bin\Ruby.exe" "C:\RailsInstaller\Ruby2.2.0\bin\Rails" %1 %2 %3 %4 %5 %6 %7 %8 %9

@"C:\RailsInstaller\Ruby2.2.0\bin\Ruby.exe" "%~dpn0" %*

Vous devrez également répéter cette modification pour deux lignes similaires dans C:\RailsInstaller\Ruby2.2.0\bin\bundle.bat.

Exécutez Rails -v Pour vérifier que Rails fonctionne maintenant.

Vous pouvez suivre ce problème sur leur dépôt git ici: https://github.com/railsinstaller/railsinstaller-windows/issues/7

43
Al Sweigart

La solution est spécifiée dans les problèmes github de railsinstaller - https://github.com/railsinstaller/railsinstaller-windows/issues/7

20
Javid Askerov

J'ai ouvert tous les .bat fichiers sous C:\RailsInstaller\Ruby2.2.0\bin dans Texte sublime, et remplacés par Ctrl+Shift+F,

cette
@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\Ruby.exe"
avec ça
@"%~dp0Ruby.exe"
dans tous les fichiers ayant une correspondance.

Pris seulement quelques secondes. Cela pourrait aider quelqu'un qui tombe après moi et qui est découragé par l'idée d'effectuer une recherche et de remplacer plusieurs fichiers.

9
Jayant Bhawal

J'ai résolu ce problème sur ma machine Windows en faisant

  1. gem Installer Bundler
  2. bundler installer
  3. Les numéros 1 et 2 ont résolu le problème et installé toutes les gemmes.
9
Serge_k

J'ai créé un moyen très facile de faire la solution de @ JayantBhawal (a parfaitement fonctionné pour moi) avec Windows Powershell , ce que vous devriez tous avoir car cela semble être un problème exclusif aux machines Windows. Cela semble compliqué, mais en réalité, tout ce que cela fait est de remplacer toutes les instances de C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\Ruby.exe avec %~dp0Ruby.exe dans les fichiers .bat. Ouvrez juste Powershell, cd à C:\RailsInstaller\Ruby2.3.0\bin, et copiez ce petit script:

Get-ChildItem . -Filter *.bat | Foreach-Object {
(Get-Content $_.name ) | ForEach-Object { 
    $_ -replace "C:\\Users\\emachnic\\GitRepos\\railsinstaller-windows\\stage\\Ruby2.2.0\\bin\\Ruby.exe", "%~dp0Ruby.exe" 
} | Set-Content $_.name}

Après avoir appuyé sur Entrée, vous devriez constater que toutes les instances de cette chaîne ont été remplacées. GL

edit: version mise à jour 2.2.0 -> 2.3.0

3
feihcsim

Je suis tombé sur ce problème il y a quelques jours. Il semble que tout d'un coup, après avoir exécuté Rails plusieurs fois sous Windows, vous jouez avec l'invite de commande cmd, changez l'arrière-plan et les couleurs du texte de la commande ou ouvrez plusieurs fenêtres d'invite de commande en même temps. Lorsque vous tentez d'exécuter la commande "Serveur Rails", "Nouvelle application Rails" ou "Installation groupée", vous obtenez le message "Le système ne peut pas trouver le chemin spécifié".

J'ai résolu ce problème en exécutant la commande: 'gem install _____' (remplissez cette ligne avec: 'bundle', 'bundler' et 'byebug'), qui sont les noms de trois fichiers .bat (exécutez cette commande avec chacun d'eux. bat nom de fichier ONE AT UN TEMPS). Une fois que vous avez fait cela, testez-le! Essayez de créer une nouvelle application, une installation groupée et Rails serveur. Il a travaillé pour moi.

2
Ernie Plez

J'ai rencontré le même problème et en cours d'exécution gem install Rails dans l'invite de commande cela fonctionne.

Cordialement, T.S.

1
Tony Stark

Je crois que la solution pour le problème ci-dessus est très simple.

Le problème se produit car dans le répertoire d'installation, le lot que vous avez prend le chemin par défaut. Par exemple, supposons que vous exécutiez la commande suivante: installation groupée Pour exécuter cette commande, le fichier de commandes de votre lot doit être configuré correctement. Par défaut, le fichier de commandes aura la structure suivante:

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.3.0\bin\Ruby.exe" 
"C:/Users/emachnic/GitRepos/railsinstaller-windows/stage/Ruby2.3.0/bin/bundle" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.3.0\bin\Ruby.exe" "%~dpn0" %

Pour moi Rails est installé dans C lecteur: C:\RailsInstaller\Ruby2.3.0\bin Le fichier bundle ci-dessus doit donc être configuré de la manière suivante:

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"C:/RailsInstaller/Ruby2.3.0/bin/Ruby.exe" 
"C:/RailsInstaller/Ruby2.3.0/bin/bundle" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"C:/RailsInstaller/Ruby2.3.0/bin/Ruby.exe" "%~dpn0" %

Cela résoudra le problème ci-dessus.

La solution ci-dessus doit être appliquée partout où nous sommes confrontés à la commande en cours d'exécution du problème.

J'ai trouvé votre question en cherchant le même problème plus tôt et je l'ai juste corrigée moi-même (Windows 8.1), alors j'ai pensé pouvoir y répondre. J'essayais d'exécuter Ruby 2.2 sous Windows 8.1 en utilisant RailsInstaller. Je suis maintenant en mesure d'exécuter Ruby et Rails, bien qu'une version plus ancienne. Je pense que c'est un problème d'architecture 64 bits par rapport à 32 bits, ce dernier semble fonctionner correctement. Voici comment je l'ai fait:

  1. Commencez par lire cet article de blog et voyez si cela résout votre problème, même si je ne le crois pas. J'ai utilisé regedit.exe pour rechercher l'instance AutoRun en question. Je n'en avais pas, alors j'ai essayé l'étape suivante.

  2. Désinstallez la version Ruby 2.2 de RailsInstaller (allez dans votre control panel> programs and features alors désinstaller RailsInstaller.

  3. Ensuite, installez la version 1.9.3. Allez ici et CTRL + F "1.9" pour trouver la version Ruby 1.9.3 de RailsInstaller.

  4. Une fois installé, assurez-vous de lancer un gem update --system pour mettre à jour tous vos joyaux. J'ai eu du mal à courir Rails new jusqu'à ce que je fasse la mise à jour de la gemme. Maintenant tout fonctionne bien.

Donc, vous utiliserez une version légèrement plus ancienne de Ruby mais tout devrait bien fonctionner. Cette solution a fonctionné pour moi et j'espère que cela fonctionnera pour vous.

0
Allen