it-swarm.com.de

Rails - Das System kann den angegebenen Pfad nicht finden

Ich habe Rails und Ruby unter Windows mit Railsinstaller installiert. Das Problem ist, wenn ich den Befehl Rails) ausführe gibt mir: "Das System kann den angegebenen Pfad nicht finden."

Ich verwende Windows 7 x 64 und Ruby 2.20.

Ich habe versucht, Rails zu deinstallieren und erneut zu installieren; das hilft nicht. Ruby Befehle werden ausgeführt, wie Ruby -v, aber Rails -v= funktioniert nicht.

55
Javid Askerov

Gehen Sie zu C:\RailsInstaller\Ruby2.2.0. In einigen der .bat-Dateien finden Sie Folgendes:

@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" %*

Löschen Sie das und fügen Sie den folgenden Text ein:

@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

Dies ist auf einen Fehler im RailsInstaller zurückzuführen, bei dem zwei Dateien den Speicherort Ruby.exe Haben, der nur auf dem RailsInstaller-Entwicklercomputer funktioniert. In C:\RailsInstaller\Ruby2.2.0\bin\Rails.bat (Dies ist der Standardinstallationsordner, möglicherweise haben Sie Rails.bat Woanders, wenn Sie einen anderen Installationsordner ausgewählt haben) finden Sie diese beiden Zeilen:

@"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" %*

Der emachnic-Benutzer ist der RailsInstaller-Entwickler. Um dieses Problem zu umgehen, können Sie diese Ordner in die Ordner auf Ihrem Computer ändern. Für den Standardinstallationsordner ändern Sie diese in:

@"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" %*

Sie müssen diese Änderung auch für zwei ähnliche Zeilen in C:\RailsInstaller\Ruby2.2.0\bin\bundle.bat Wiederholen.

Führen Sie Rails -v Aus, um zu überprüfen, ob Rails jetzt funktioniert.

Sie können dieses Problem auf ihrem Git-Repo hier verfolgen: https://github.com/railsinstaller/railsinstaller-windows/issues/7

43
Al Sweigart

Die Lösung ist in den Github-Problemen des Railsinstaller angegeben - https://github.com/railsinstaller/railsinstaller-windows/issues/7

20
Javid Askerov

Ich öffnete alle .bat Dateien unter C:\RailsInstaller\Ruby2.2.0\bin in Sublime Text und ersetzt durch Ctrl+Shift+F,

dies
@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\Ruby.exe"
mit diesem
@"%~dp0Ruby.exe"
über alle Dateien, die eine Übereinstimmung hatten.

Es dauerte nur ein paar Sekunden. Dies könnte jemandem helfen, der hinter mir her stolpert und von der Idee abgeschreckt ist, mehrere Dateien zu suchen und zu ersetzen.

9
Jayant Bhawal

Ich habe dieses Problem auf meinem Windows-Rechner dadurch gelöst

  1. gem install bundler
  2. bundler installieren
  3. Nummer 1 und 2 haben das Problem behoben und alle Edelsteine ​​installiert.
9
Serge_k

Ich habe mit Windows Powershell eine supereinfache Möglichkeit geschaffen, die @ JayantBhawal-Lösung (für mich völlig in Ordnung) durchzuführen. Es sieht kompliziert aus, aber eigentlich ist alles, was es tut, das Ersetzen aller Instanzen von C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\Ruby.exe mit %~dp0Ruby.exe in den .bat-Dateien. Öffne einfach Powershell, CD zu C:\RailsInstaller\Ruby2.3.0\bin und kopiere dieses kleine Skript:

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}

Nachdem Sie die Eingabetaste gedrückt haben, sollten Sie feststellen, dass alle Instanzen dieser Zeichenfolge ersetzt wurden. GL

edit: aktualisierte version 2.2.0 -> 2.3.0

3
feihcsim

Ich bin vor ein paar Tagen auf dieses Problem gestoßen. Es scheint ganz plötzlich, nachdem Sie Rails) unter Windows viele Male ausgeführt haben, mit dem Befehl Eingabeaufforderung cmd gespielt, den Befehlshintergrund und die Textfarben geändert oder mehr als ein Eingabeaufforderungsfenster gleichzeitig geöffnet haben Mal, und dann versuchen Sie, den Befehl "Rails Server" "Rails neue App" oder "Bundle-Installation" auszuführen, erhalten Sie die Meldung "Das System kann den angegebenen Pfad nicht finden"

Ich habe dieses Problem gelöst, indem ich den folgenden Befehl ausgeführt habe: 'gem install _____' (füllen Sie diese Zeile mit 'bundle', 'bundler' und 'byebug' aus). Dies sind die Namen von drei .bat-Dateien (führen Sie diesen Befehl mit jeder aus). bat file name ONE AT A TIME). Wenn Sie das getan haben, testen Sie es! Versuchen Sie, eine neue App zu erstellen, installieren Sie sie im Paket und Rails server. It arbeitete für mich.

2
Ernie Plez

Ich bin auf dasselbe Problem gestoßen und habe gem install Rails In der Eingabeaufforderung ausgeführt, damit es funktioniert.

Grüße, T.S.

1
Tony Stark

Ich glaube, die Lösung für das oben genannte Problem ist sehr einfach.

Das Problem tritt auf, weil der Stapel im Installationsverzeichnis den Standardpfad verwendet. Nehmen wir beispielsweise an, Sie führen den folgenden Befehl aus: Bundle-Installation Damit Sie diesen Befehl ausführen können, muss Ihre Bundle-Batch-Datei korrekt konfiguriert sein. Standardmäßig hat die Batch-Datei die folgende Struktur:

@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" %

Für mich Rails ist installiert in C Laufwerk: C:\RailsInstaller\Ruby2.3.0\bin daher sollte die obige Bundle-Datei wie folgt konfiguriert werden:

@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" %

Dies wird das obige Problem lösen.

Die obige Lösung sollte immer dann angewendet werden, wenn das Problem beim Ausführen des Befehls auftritt.

Ich habe Ihre Frage gefunden, als ich das gleiche Problem zuvor untersucht habe, und habe sie nur für mich selbst behoben (Windows 8.1), sodass ich dachte, ich würde sie beantworten. Ich habe versucht, Ruby 2.2 unter Windows 8.1 mit RailsInstaller auszuführen. Ich kann jetzt Ruby und Rails ausführen, wenn auch eine ältere Version. Ich denke, das ist Ein Problem mit 64-Bit-Architekturen im Vergleich zu 32-Bit-Architekturen, von denen letztere anscheinend einwandfrei funktionieren.

  1. Lesen Sie zuerst diesen Blog-Beitrag und prüfen Sie, ob dies Ihr Problem löst, obwohl ich nicht denke, dass dies der Fall sein wird. Ich habe regedit.exe Verwendet, um die betreffende AutoRun-Instanz zu finden. Ich hatte keinen, also versuchte ich den nächsten Schritt.

  2. Deinstallieren Sie die Ruby 2.2-Version von RailsInstaller (gehen Sie zu Ihrem control panel> programs and features Und deinstallieren Sie dann RailsInstaller.

  3. Installieren Sie dann die Version 1.9.3. Gehen Sie zu hier und STRG + F "1.9", um die Ruby 1.9.3-Version von RailsInstaller zu finden.

  4. Stellen Sie nach der Installation sicher, dass Sie einen gem update --system Ausführen, um alle Ihre Edelsteine ​​zu aktualisieren. Ich hatte Probleme, Rails new Auszuführen, bis ich das Edelstein-Update durchgeführt habe. Jetzt funktioniert alles gut.

Sie werden also eine etwas ältere Version von Ruby verwenden, aber alles sollte in Ordnung sein. Diese Lösung hat bei mir funktioniert und ich hoffe, dass sie bei Ihnen funktioniert.

0
Allen