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

Dev*_*der 6 ruby windows rake cygwin

我无法让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玩得很好?

pgu*_*rio 39

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

alias gem=gem.bat
alias irb=irb.bat
alias rake=rake.bat
Run Code Online (Sandbox Code Playgroud)

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


Lui*_*ena 6

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

没有解决方案,因为脚本的调用是由rake调用本机Ruby的bash over scrip完成的.

cygwin还会引发许多其他问题,而RubyInstaller故障排除页面则介绍了一些问题

一种替代方案是rake.bat直接调用,跳过cygwin shebang检测.

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

另一种方法是安装类似gem-exefy(gem install gem-exefy)的东西,并为已安装的gems(rake.exe)生成可执行文件.

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

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

如您所见,将非本机(cygwin)与本机(RubyInstaller)混合会产生很多副作用.