2012-07-02 7 views
13

Tengo un servidor que está totalmente desconectado de Internet (por razones de seguridad extrañas).Dependencias de Ruby gem en el servidor fuera de línea

¿Cómo puedo hacer que las dependencias de Ruby a varias gemas funcionen en ese entorno? Podría funcionar con Bundler, pero ¿cómo instalo Bundler usando gem sin una conexión a Internet?

+4

Puede instalar el paquete desde un archivo '.gem'. Vaya a [rubygems] (http://rubygems.org/gems/bundler/), presione el botón 'Descargar', y luego haga 'gem install bundler-1.1.4.gem'. Luego puede usar ['bundler package'] (http://gembundler.com/man/bundle-package.1.html) para empacar todas las gemas necesarias en el directorio' vendor/cache' de su aplicación, para que pueda implementarlas a su servidor junto con la aplicación. –

+0

¡Gracias! Lo intentaré de inmediato. ¿Encontrará Ruby todas las gemas en el proveedor/caché automáticamente o debo especificar una ruta de carga determinada? –

+1

De acuerdo con [docs] (http://gembundler.com/man/bundle-package.1.html) si haces 'bundle install --local' en el directorio de tu aplicación en el servidor, el paquete buscará solo gemas en 'vendedor/caché'. –

Respuesta

21

Puede descargar bundler como un archivo .gem de rubygems e instalarlo en el servidor con

gem install /path/to/bundler.gem 

A continuación, puede empacar todas las gemas requeridas para su aplicación en ./vendor/cache directorio con

bundle package 

Si ahora despliega su aplicación (junto con el directorio ./vendor/cache) en el servidor y ejecuta

bundle install --local 

bundler no irá a rubygems, sino que instalará todas las gemas del directorio ./vendor/cache.

Consulte bundler-packagedocs para obtener más información.

+0

gema fetch bundler para el primer paso –

Cuestiones relacionadas