0

Cygwin で Rails を実行しようとしていますが、「rails -v」と入力すると「rails」が検出され、エラーがスローされます。「rails.bat -v」と入力すると、問題なく動作します。PATHEXT を使用して .BAT.

次のように .bash_profile に行を追加し、変数を設定しています。

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

これは私の出力です:

$ 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~
$
4

2 に答える 2

0

(RailsInstallerを使用するWindowsで)私にとって唯一の方法は、インストールパスに追加してエイリアスを作成することでした。

alias rails='C:/RailsInstaller/Ruby1.9.3/bin/rails'

cygwin ターミナル内でそれを入力すると、問題なく動作しました。

于 2013-10-02T01:50:03.170 に答える
0

Railsinstaller ruby​​ バイナリを使用しているようです。これは基本的に、Rails 開発に不可欠なものがバンドルされたRubyInstallerの再配布です。

ただし、実際にはすべてが意図したとおりに機能しています。

Cygwin はPATHTEXT必要がないので使用しません。つまり、バッチ ファイルrailsの代わりに binstubを呼び出します。binstubs にrails.bataがあるため、cygwin は実行全体を処理します。hashbang

また、RubyInstaller ディストリビューションは Cygwin 用にコンパイルされていません。そのruby.exeため、Cygwin パスのルックアップがわかりません。それがあなたが得ている理由ですLoadError

私の意見では、Luis Lavena による同様の質問に対するこの回答を確認する必要があります。ただし、本当に必要な場合は、Cygwin で Ruby を再コンパイルするか、Cygwin Ruby ディストリビューションを入手できます。

于 2013-02-07T03:19:05.313 に答える