Es un problema típico: en tu máquina tienes en acceso a Ruby en una ubicación, por ejemplo en "/usr/local/bin/ruby" y en tu entorno de desarrollo en "/usr/local/bin/ruby".
Esta información es necesaria en la primera línea de los scripts o shebang, que es aquella que llamará a los ejecutables de Ruby.
¿Qué significa esto? Que para ejecutar scripts en Ruby deberías cambiar la primera línea de tus scripts para acomodarlo al entorno en el que vaya a funcionar la aplicación.
Solución
Mediante el parámetro "--ruby /ruta/a/ruby" puedes generar las aplicaciones con el shebang que introduzcas en el parámetro. En este caso, tras averiguar la ruta hacia Ruby el servidor de producción:
puedes predeterminar el shebang de una aplicación para que cuadre con la ruta en producción, mediante el parámetro --ruby
El shebang resultante sería:
Si el enlace a tu máquina de desarrollo no tiene acceso a Ruby en esa ubicación, puedes, mediante un enlace simbólico (symlink) crear un vínculo entre las rutas de tu entorno de desarrollo y la que has definido para producción en el paso anterior. De esta manera, la aplicación funcionaría en ambos entornos sin tener que tocar el shebang.
# Enlazar la ubicación de Ruby en desarrollo con un symlink local$ sudo ln -s /opt/local/bin/ruby /usr/local/bin/ruby local$ sudo ln -s /opt/local/bin/ruby /usr/bin/ruby
Fuente: Deploying Rails Applications. A step by step guide. Ezra Zygmuntowicz
Escribe un comentario