Pregunta

He instalado JRuby y Ruby (MRI). Parece que tengo que instalar gemas dos veces - una vez para cada una de estas plataformas. Es esto necesario o estoy haciendo mal? Después de instalar la gema rieles para la RM, debería haber señalado JRuby a ella, o era necesario que yo llamo también: "jruby -S joya instalar rieles"

¿Fue útil?

Solución

Si define GEM_HOME puede compartir sus instalaciones de la gema.

Otros consejos

Es necesario instalar gemas diferentes para cada instalación de rubí que tiene.

Algunas gemas se dirigen a plataformas específicas, por ejemplo Mestizo (hay una resonancia magnética una vez y JRuby uno). Además, JRuby no puede usar gemas que tienen extensiones nativas (es decir, código C) a menos que utilizan el FFI (que la mayoría no - todavía).

Personalmente he repos joya separadas para resonancia magnética y JRuby. El poco de molestia adicional vale la paz de la mente cuando se trata de localizar a un problema.

Es bastante fácil ver lo que cada uno de recompra ha instalado:

jruby -S gem list --local

vs.

gem list --local

Incluso se podría escribir un script de rubí para sincronizar una lista de joya para el otro, pero usted tendría que tener cuidado con las gemas específicos de la plataforma ....

Me golpeó este problema al crear mi joya, jimmy_jukebox , pero hizo que mi trabajo joya con ambos.

En primer lugar, JRuby no manejar fork...exec (e incluso responde incorrectamente a Process.respond_to?(:fork)), así que tuve que rescue NotImplementedError y utilizar Spoon.spawnp lugar.

Entonces creé (en el directorio / bin de mi joya) ejecutables emparejado - play_jukebox y jplay_jukebox; y load_jukebox y jload_jukebox -. cada uno con la línea shebang correcta (/usr/bin/env ruby o /usr/bin/env jruby)

Me gustaría saber una mejor manera. Pero prefiero manejar todo dentro de una sola joya de mantener y distribuir múltiples gemas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top