Pregunta

Tengo una aplicación Rails que necesito implementar. Aquí están los hechos:

  • La aplicación fue desarrollada en Windows y requiere gemas binarias de Windows
  • La aplicación se implementará en un servidor compartido de Open Solaris (Joyent)
  • No tengo permisos para instalar gemas en el servidor
  • Para las gemas no binarias, simplemente puedo hacer gemas de rastrillo : desempaquetar localmente y luego subir; esto funciona bien.

Entonces mi pregunta es, ¿cómo obtengo las gemas binarias que necesito en mi servidor de producción?

¿Fue útil?

Solución

  
      
  • La aplicación fue desarrollada en Windows y requiere gemas binarias de Windows
  •   
  • La aplicación se implementará en un servidor compartido de Open Solaris (Joyent)
  •   

Te das cuenta de que no puedes ejecutar binarios de Windows en Solaris abiertos. De hecho, Windows es completamente diferente de Solaris ...

Si las gemas son de un tercero, es posible que pueda descargar versiones binarias preempaquetadas para solaris que alguien más ha producido. Luego puede colocarlos en el directorio de proveedores y cargarlos desde allí en lugar de instalar una gema.

Si no puede obtener binarios pre-empaquetados para solaris, necesitará tener su propia máquina solaris (usando Virtual PC, VMWare, VirtualBox, etc.), úsela para compilar las gemas, luego extraiga los archivos binarios fuera.

Si de hecho solo tiene un código fuente que funciona en Windows (por ejemplo: usted mismo lo construyó, o la persona que proporcionó la gema solo lo diseñó para funcionar en Windows), está jodido. Deberá encontrar un reemplazo multiplataforma.

Sería útil que nos dijeras de qué gemas estás hablando, para que las personas puedan ayudar a localizar una solución más específica y explicar exactamente lo que está sucediendo.

Otros consejos

Solicite que el administrador del servidor compartido instale las gemas por usted. Si son " estándar " gemas disponibles de un dominio de buena reputación, realmente no debería ser tan importante, mi proveedor de servidores compartidos lo hace todo el tiempo.

Las gemas binarias son el verdadero problema. Para todas las demás gemas, puede usar el directorio vendor / gems (solo es posible con Rails 2.1+).

Vende todo.

Esto hace dos cosas. Hace que su aplicación sea desplegable sin depender de las gemas instaladas en el sistema y, en segundo lugar, congela una versión específica de una gema para su aplicación. Entonces, si alguien más lo comprueba con su herramienta SCM, no tendrá una versión que no coincida y estará funcionando sin problemas.

¡Buena suerte!

Probablemente tendrá que usar un compilador cruzado para apuntar a Solaris que se ejecuta en Windows.

La construcción de compiladores cruzados es generalmente un proceso difícil y propenso a errores. Lo he hecho antes y la complejidad no es para los débiles de corazón. Idealmente, encontrará a alguien con acceso a una máquina de construcción Solaris y le pedirá que cree el binario para usted.

Si tiene que seguir la ruta del compilador cruzado, sospecho que la solución será instalar cygwin y usar sus herramientas de compilación para crear un compilador cruzado de Solaris alojado en cygwin. Sugeriría mirar el crosstool proyecto que le proporcionará scripts que manejan algunos de los detalles para usted.

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