我已经跟踪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命令吗?
答案 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