2012-09-03 8 views
6

Estaba teniendo problemas para conseguir que jekyll trabaje con Ruby usando cygwin en Windows 7 de 64 bits. Tengo mejores resultados usando rubyinstaller + devkit. Sería realmente bueno si pudiera usar el ruby ​​installer ruby ​​dentro de cygwin.¿Hay alguna manera de hacer que Rubyinstaller juegue bien con cygwin?

Sin embargo, recibo el siguiente mensaje cuando trato de ejecutar el rake.

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

¿Hay alguna manera de hacer que Rubyinstaller juegue bien con cygwin?

+0

posible duplicado de [RubyGems + Cygwin: ruta de acceso POSIX no encontrada por ruby.exe] (http://stackoverflow.com/questions/3831131/rubygems-cygwin-posix-path-not-found-by-ruby-exe) –

Respuesta

5

El problema es que cygwin convierta todas las rutas de los scripts en rutas de cygwin (/cygdrive/...).

No hay ninguna solución para eso ya que la invocación de la secuencia de comandos se hace desde bash sobre rake scrip que invoca a Ruby nativo.

Hay una gran cantidad de otros problemas que causará cygwin, y algunos están cubiertos en RubyInstaller troubleshooting page

Una alternativa será invocando rake.bat directamente, saltándose la detección tinglado cygwin.

Pero a cygwin no le gustan los archivos por lotes, lo que obliga a hacer cmd.exe /C rake.bat y esa es una línea de comando ruidosa.

La otra alternativa es instalar algo como gem-exefy (gem install gem-exefy) y generar ejecutables para sus gems instaladas (rake.exe).

De esta manera invocará rake.exe en lugar de dejar que cygwin lo resuelva.

Otra alternativa es usar MSYS Bash (incluido en DevKit) en lugar de cygwin, que juega mucho mejor que cygwin one, pero todavía tendrá problemas con los archivos por lotes.

Como puede ver, la mezcla de elementos no nativos (cygwin) con nativos (RubyInstaller) tiene muchos efectos secundarios.

+0

Gracias! Fui a la ruta gemela-exefy. Una inconveniencia menor para incluir la extensión .exe pero ahora al menos no tengo que usar tanto cmd.exe como cygwin :) –

38

que sólo hay que poner unos pocos de estos en mi .bash_profile:

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

no tengo ninguno de los problemas que menciona Luis.

+0

Interesante, cygwin 1.7? Tuve un montón de problemas con cygwin tratando de leer los archivos por lotes y no interpretarlos correctamente. Feliz de escuchar los archivos por lotes funcionó para usted :) –

+0

Sí, el truco puede ser simplemente asegurarse de que estén en su RUTA y no utilizar la ruta completa cuando los ejecuta – pguardiario

+2

Gracias, funcionó perfectamente. –

Cuestiones relacionadas