有没有办法让rubyinstaller与cygwin玩得很好?

时间:2012-09-03 17:00:23

标签: ruby windows cygwin rake

我无法让jekyll在Windows 7 64位上使用cygwin使用Ruby。使用rubyinstaller + devkit我有更好的结果。如果我可以在cygwin中使用rubyinstaller ruby​​,那将是非常好的。

但是,当我尝试执行rake时,收到以下消息。

$ rake page name="pages/about.md"
C:\Ruby193\bin\ruby.exe: No such file or directory -- /cygdrive/c/Ruby193/bin/rake (LoadError)

有没有办法让rubyinstaller和cygwin玩得很好?

2 个答案:

答案 0 :(得分:39)

我只是在我的.bash_profile中添加了一些这些:

alias gem=gem.bat
alias irb=irb.bat
alias rake=rake.bat

我从未遇到过路易斯提到的任何问题。

答案 1 :(得分:6)

问题是cygwin将所有脚本路径转换为cygwin路径(/cygdrive/...)。

没有解决方案,因为脚本的调用是通过调用本机Ruby的rake脚上的bash进行的。

cygwin会导致很多其他问题,有些问题在RubyInstaller troubleshooting page

中有所涉及

另一种方法是直接调用rake.bat,跳过cygwin shebang检测。

但是cygwin不喜欢批处理文件,这会强制你执行cmd.exe /C rake.bat,这是一个嘈杂的命令行。

另一种方法是安装类似gem-exefygem install gem-exefy)的内容,并为已安装的宝石生成可执行文件(rake.exe)。

这样你就可以调用rake.exe而不是让cygwin弄明白。

另一种选择是使用MSYS Bash(包含在DevKit中)而不是cygwin,它比cygwin更好,但是你仍然会遇到批处理文件的问题。

正如您所看到的,将非本机(cygwin)与本机(RubyInstaller)混合会产生很多副作用。