尝试通过Windows上的Cygwin调用rails命令时出错(通过railsinstaller安装)

时间:2012-03-29 12:32:51

标签: ruby-on-rails windows-7 cygwin

我已经跟踪this tutorial在Windows上的rails上安装ruby。 (步骤在页面中间的视频中解释)

如果我在经典的Windows shell(windows + r> cmd> enter)中运行rails命令,它可以正常工作。但是,我希望能够在cygwin shell中调用它。但如果我这样做,例如:

$> rails s # in cygwin

我有以下错误:

  

C:\ RailsInstaller \ Ruby1.9.3 \ bin \ ruby​​.exe:没有这样的文件或目录 -   /cygdrive/c/RailsInstaller/Ruby1.9.3/bin/rails(LoadError)

我查看了这个文件夹:C:\RailsInstaller\Ruby1.9.3\bin\,确实没有rails.exe,只有rails和rails.bat文件。

rails.bat看起来像这样:

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

我只知道cygwin查找.exe文件(例如,如果键入cp,它是否会执行cp.exe可执行文件)。我不知道.bat文件是如何工作的。

所以你知道如何让cygwin能够调用rails命令吗?

5 个答案:

答案 0 :(得分:2)

正如您所说,Windows上的rails是一个“.bat”文件。只需在每个命令中使用“.bat”扩展名即可。它对我有用。

试试看:“rails.bat -v”(在Cygwin中)

答案 1 :(得分:2)

我在cygwin遇到了同样的问题但是" rails"命令在Windows cmd提示符下正常工作。转过身来 在cygwin中调用以下命令,
alias rails='path_to_ruby_installed_directory/bin/rails.bat'

在你的情况下,
alias rails ='C:/Projects/railsinstaller/stage/Ruby1.9.3/bin/rails.bat'

使别名永久化, 编辑CYGWIN主目录中的.bashrc文件,并在其中添加上述别名。

答案 2 :(得分:1)

不建议使用Cygwin,因为所有内容都设置为与命令提示符一起使用。您可能能够使用git-bash,但RI中包含的命令提示符是使用RailsInstaller的受支持方法。如果你想使用Cygwin,我建议你不要使用RailsInstaller。

答案 3 :(得分:0)

我这么长时间以来都遇到过这个问题,我刚刚找到了一个解决方法,在cygwin终端:

ln -s path-of-you-rails-installer / RailsInstaller / Ruby1.9.3 / bin / ruby​​.exe / bin / ruby ln -s path-of-you-rails-installer / RailsInstaller / Ruby1.9.3 / bin / rails.bat / bin / rails

ps:完整路径将是这样的:/cygdrive/d/RailsInstaller/Ruby1.9.3/bin/ruby.exe

然后可以在cygwin中调用rails。

答案 4 :(得分:0)

将此添加到.bashrc或.zshrc中,为所有相应的.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

感谢https://stackoverflow.com/a/19424481/1248256