2012-09-03 68 views
6

我在使用cygwin在Windows 7 64位上使用Ruby进行Ruby操作时遇到了麻烦。我使用rubyinstaller + devkit获得了更好的结果。如果我可以在cygwin中使用rubyinstaller ruby​​,那将非常好。有没有办法让rubyinstaller和cygwin一起玩呢?

但是,当我尝试执行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一起玩吗?

+0

[RubyGems + Cygwin:通过ruby.exe找不到的POSIX路径]的可能重复(http://stackoverflow.com/questions/3831131/rubygems-cygwin-posix-path-not-found-by-ruby-exe ) –

回答

5

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

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

还有很多其他问题的cygwin会引起,有些是覆盖RubyInstaller troubleshooting page

一种选择将直接调用rake.bat,跳过cygwin的家当检测。

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

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

这样你调用rake.exe而不是让cygwin搞清楚。

另一种选择是使用MSYS Bash(包含在DevKit中)而不是cygwin,它比cygwin更好玩,但批处理文件仍然存在问题。如你所见,混合非native(cygwin)和native(RubyInstaller)有很多副作用。

+0

谢谢!我参加了创业之路。一个小的不便,包括.exe扩展名,但现在至少我不必同时使用cmd.exe和cygwin :) –

38

我只是把其中的几个在我的.bash_profile:

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

我完全没有任何的问题,路易斯提到。

+0

有趣的,cygwin 1.7?我有一堆cygwin试图读取批处理文件的问题,并没有正确解释它们。很高兴听到批处理文件对你有用:) –

+0

是的,诀窍可能是确保它们在PATH中,并且在运行它们时不要使用完整路径 – pguardiario

+2

谢谢,这很好。 –

相关问题