2013-02-07 1 views
0

J'essaye d'exécuter Rails sous Cygwin mais quand je tape "rails -v" il trouve des "rails" et jette une erreur. Quand je tape "rails.bat -v" cela fonctionne très bien. Soit fonctionne bien dans le processeur de commande Windows natif car il utilise PATHEXT pour identifier les exécutables comme .BAT.Comment configurer Cygwin pour effectuer une recherche à l'aide de la variable d'environnement PATHEXT?

J'ai ajouté une ligne à .bash_profile comme suit et elle définit la variable, pour autant que je sache.

export PATHEXT=".RB;.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC" 

Ceci est mon sortie:

$ echo $PATH 
/usr/local/bin:/usr/bin:/cygdrive/c/Program Files/Common Files/Microsoft Shared/Windows Live:/cygdrive/c/Program Files (x86)/Common Files/Microsoft Shared/Windows Live:/cygdrive/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Program Files/WIDCOMM/Bluetooth Software:/cygdrive/c/Program Files/WIDCOMM/Bluetooth Software/syswow64:/cygdrive/c/Program Files (x86)/Windows Live/Shared:/cygdrive/c/Program Files/Intel/WiFi/bin:/cygdrive/c/Program Files/Common Files/Intel/WirelessCommon:/cygdrive/c/Program Files/Microsoft Windows Performance Toolkit:/cygdrive/c/Program Files (x86)/QuickTime/QTSystem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/c/Program Files/Microsoft/Web Platform Installer:/cygdrive/c/Program Files/7-Zip:/cygdrive/d/sysinternals:/cygdrive/d/batch:/cygdrive/d/Program Files/Sublime Text 2:/cygdrive/d/RailsInstaller/Ruby1.9.3/bin:/cygdrive/d/RailsInstaller/Git/cmd:/cygdrive/d/RailsInstaller/Git/bin:/usr/bin:/cygdrive/d/batch 

18:54~ 
$ echo $PATHEXT 
.RB;.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC 

18:54~ 
$ which rails 
/cygdrive/d/RailsInstaller/Ruby1.9.3/bin/rails 

18:54~ 
$ which rails.bat 
/cygdrive/d/RailsInstaller/Ruby1.9.3/bin/rails.bat 

18:55~ 
$ rails -v 
D:\RailsInstaller\Ruby1.9.3\bin\ruby.exe: No such file or directory -- /cygdrive/d/RailsInstaller/Ruby1.9.3/bin/rails (LoadError) 

18:55~ 
$ rails.bat -v 
Rails 3.2.11 

18:55~ 
$ 

Répondre

0

On dirait que vous utilisez le binaire Ruby Railsinstaller, qui est essentiellement une redistribution des RubyInstaller avec quelques-uns des éléments essentiels pour le développement Rails empaquetés.

Cependant, tout fonctionne comme prévu.

Cygwin n'utilisera pas PATHTEXT car il n'en a pas besoin. En d'autres termes, il appellera le rails binstub au lieu du fichier de commandes rails.bat. Comme il y a un hashbang dans les binstubs, cygwin gère l'exécution entière elle-même.

En outre, la distribution RubyInstaller n'a pas été compilée pour Cygwin. Donc, ruby.exe ne comprend pas la recherche des chemins Cygwin. C'est pourquoi vous obtenez un LoadError. À mon avis, vous devriez probablement vérifier this answer by Luis Lavena to a similar question. Cependant, si vous le souhaitez, vous pouvez recompiler Ruby dans Cygwin ou obtenir une distribution Cygwin Ruby.

+0

J'ai essayé d'utiliser la deuxième réponse fournie dans votre lien référencé, pas la première et la réponse acceptée. Il utilise des commandes alias pour traduire les rails en rails.bat. Il semble fonctionner mais je chercherai des effets secondaires. Je vais devoir envisager de devenir natif complet, cependant. –

0

(Sous Windows avec RailsInstaller) La seule façon pour moi était de faire add et alias sur le chemin d'installation. Une fois que j'ai tapé cela dans le terminal cygwin, cela a très bien fonctionné.

Questions connexes