2010-09-10 12 views
13

Las cosas descritas en la documentación formal son un poco complicadas.¿Qué hace exactamente Rails 3's Bundler "bundle install --deployment"?

lo hace más que añadir la siguiente línea a .bundle/config

BUNDLE_PATH: vendor/bundle 

y luego realice una bundle install, y eso es todo? (la instalación instalará todas las gemas en vendor/bundle)

Luego, cuando la aplicación se ejecute, buscará las gemas en esta ruta especificada en .bundle/config, y eso es todo?

Update: si uso Mercurial (similar a Git) para realizar un seguimiento de los archivos de proyecto, a continuación, después de hacer el bundle install --deployment, los únicos cambios son una gran cantidad de archivos añadidos al vendedor/paquete, y 2 líneas añaden a .bundle/config:

BUNDLE_FROZEN: "1" 
BUNDLE_PATH: vendor/bundle 

Respuesta

9

bundle install --deployment efectivamente instala las gemas localmente en el directorio vendor/bundle en la aplicación. Esto se refleja en el cambio de configuración en la configuración de ruta que mencionó (BUNDLE_PATH: vendor/bundle). Este enfoque se conoce como "congelar" o "comercializar" las gemas y obliga a la aplicación a utilizar las gemas instaladas localmente, en lugar de las gemas del sistema global, que es conveniente por defecto para la implementación. Como se menciona en la documentación bundler:.

"En el despliegue, el aislamiento es un defecto más importante Además, el usuario despliegue de la aplicación puede no tener permiso para instalar gemas para el sistema, o el servidor web no puede tener permiso para leerlos ".

Cuestiones relacionadas