7

我无法让 jekyll 在 Windows 7 64 位上使用 cygwin 与 Ruby 一起工作。使用 ruby​​installer + devkit 我得到了更好的结果。如果我可以在 cygwin 中使用 ruby​​installer ruby​​,那就太好了。

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

$ rake 页面名称="pages/about.md"
C:\Ruby193\bin\ruby.exe: 没有这样的文件或目录 -- /cygdrive/c/Ruby193/bin/rake (LoadError)

有什么方法可以让 ruby​​installer 与 cygwin 配合得很好?

4

2 回答 2

39

我只是将其中一些放在我的 .bash_profile 中:

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

我从来没有遇到过 Luis 提到的任何问题。

于 2012-09-04T00:58:18.167 回答
6

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

对此没有解决方案,因为脚本的调用是由 bash overrake调用本机 Ruby 的脚本制成的。

cygwin 会导致许多其他问题,其中一些在RubyInstaller 故障排除页面中进行了介绍

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

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

另一种选择是安装gem-exefy ( gem install gem-exefy) 之类的东西并为您安装的 gem ( ) 生成可执行文件rake.exe

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

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

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

于 2012-09-03T18:14:26.920 回答