3 Stimmen

Fehler beim Versuch, den rails-Befehl über Cygwin unter Windows aufzurufen (installiert über railsinstaller)

Ich habe verfolgt diese Anleitung für die Installation von Ruby on Rails unter Windows. (die Schritte werden in dem Video in der Mitte der Seite erklärt)

Wenn ich den Befehl rails in einer klassischen Windows-Shell ausführe ( windows + r > cmd > enter ), funktioniert es gut. Ich würde es jedoch gerne in einer Cygwin-Shell aufrufen können. Aber wenn ich das tue, zum Beispiel:

$> rails s # in cygwin

Ich habe den folgenden Fehler:

C:\RailsInstaller\Ruby1.9.3\bin\ruby.exe : No such file or directory -- /cygdrive/c/RailsInstaller/Ruby1.9.3/bin/rails (LoadError)

Ich habe mir diesen Ordner angesehen: C:\RailsInstaller\Ruby1.9.3\bin\ und es gibt tatsächlich keine rails.exe, sondern nur eine rails- und eine rails.bat-Datei.

rails.bat sieht folgendermaßen aus:

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"ruby.exe" "C:/Projects/railsinstaller/stage/Ruby1.9.3/bin/rails" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"ruby.exe" "%~dpn0" %*

Ich weiß nur, dass Cygwin nach .exe-Dateien sucht (wenn Sie zum Beispiel cp ausführen, wird es die cp.exe ausführbar). Ich weiß nicht, wie .bat-Dateien funktionieren.

Wissen Sie also, wie ich cygwin dazu bringen kann, den Befehl rails aufzurufen?

2voto

Fernando Vieira Punkte 2780

Wie Sie bereits erwähnt haben, sind die Schienen unter Windows eine ".bat"-Datei. Verwenden Sie einfach die Erweiterung ".bat" in jedem Befehl. Bei mir hat es funktioniert.

Versuchen Sie es und sehen Sie selbst: "rails.bat -v" (unter Cygwin)

2voto

balajivijayan Punkte 799

Ich hatte das gleiche Problem in cygwin, aber der Befehl "rails" funktionierte in der Windows-Eingabeaufforderung. Umgekehrt Rufen Sie den folgenden Befehl in cygwin auf,
alias rails='path_to_ruby_installed_directory/bin/rails.bat'

In Ihrem Fall,
alias rails ='C:/Projects/railsinstaller/stage/Ruby1.9.3/bin/rails.bat'

Um den Alias dauerhaft zu machen, Bearbeiten Sie die Datei .bashrc im CYGWIN-Home-Verzeichnis und fügen Sie den oben genannten Alias hinzu.

1voto

Evan Machnic Punkte 627

Es wird nicht empfohlen, Cygwin zu verwenden, da alles für die Verwendung mit Command Prompt eingerichtet ist. Möglicherweise können Sie git-bash zum Laufen bringen, aber die Eingabeaufforderung, die in RI enthalten ist, ist die unterstützte Methode zur Verwendung des RailsInstaller. Wenn Sie Cygwin verwenden möchten, würde ich vorschlagen, nicht mit RailsInstaller.

0voto

Wenlin.Wu Punkte 770

Ich leide schon so lange unter diesem Problem, und ich habe gerade einen Workaround gefunden, in cygwin terminal:

ln -s Pfad-von-Ihr-Rails-Installer/RailsInstaller/Ruby1.9.3/bin/ruby.exe /bin/ruby ln -s Pfad-von-Ihr-Rails-Installer/RailsInstaller/Ruby1.9.3/bin/rails.bat /bin/rails

ps: der vollständige Pfad wird ungefähr so lauten: /cygdrive/d/RailsInstaller/Ruby1.9.3/bin/ruby.exe

und dann kann rails in cygwin aufgerufen werden.

0voto

theotheo Punkte 2574

Fügen Sie dies zu Ihrer .bashrc oder .zshrc hinzu, um einen Alias für alle entsprechenden .bat :

# cygwin
if [[ -n "$(which ruby 2>/dev/null)" ]]; then
  RUBY_BIN=$(cygpath -u $(ruby -e 'puts RbConfig::CONFIG["bindir"]') | tr -d '\r')
  for f in $(find ${RUBY_BIN} -regex ".*bat$"| xargs -n1 basename); do
    alias ${f%.bat}=${f}
  done
fi

Merci https://stackoverflow.com/a/19424481/1248256

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X