我无法让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玩得很好?
答案 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-exefy(gem install gem-exefy
)的内容,并为已安装的宝石生成可执行文件(rake.exe
)。
这样你就可以调用rake.exe
而不是让cygwin弄明白。
另一种选择是使用MSYS Bash(包含在DevKit中)而不是cygwin,它比cygwin更好,但是你仍然会遇到批处理文件的问题。
正如您所看到的,将非本机(cygwin)与本机(RubyInstaller)混合会产生很多副作用。