2010-12-09 20 views
25

Quiero instalar la brújula descargando cualquier archivo requerido y llevándolos a otra máquina sin conexión a internet. He descargado el paquete de origen para brújula y cuando ejecuto gem en él en la máquina no conectada, se queja de las dependencias faltantes. ¿Alguna solución?Descargar todas las dependencias gems

+1

No sé lo que su caso de uso es, pero si usted no está utilizando Bündler embargo, apuesto a que va a resolver algunos de sus problemas. Es simple comenzar y es una bocanada de aire fresco. –

Respuesta

40

Ese es exactamente el problema que tuve.
Después de buscar alrededor de un rato he encontrado una solución que funciona usando la Bündler http://gembundler.com/

conseguir la gema con Dependencias:

  • crear una nueva carpeta con un archivo llamado Gemfile en ella.
  • Escribir una fuente y la gema que desea tener las dependencys para en el archivo
  • Bsp:

    fuente "http://rubygems.org"
    Gem 'rieles', '3.2.1'

  • abrir una linea de comando en esta carpeta un Ejecutar: bundle install
  • esto debe descargar e instalar todos los Dependencys
  • Ejecutar la lista haz Comando si quieres ver que
  • ejecutar el comando paquete de paquete
  • Esto debería crear el vendedor estructura de directorios/cache
  • dentro del directorio de caché son ahora todo el Dependencys que necesita para su joya

Instalar joya en la máquina sin conexión a Internet:

  • copiar la carpeta de caché de la máquina
  • abierto una linea de comando dentro de la carpeta de caché y ejecutar joya instalar -local Gemname.gem
  • Bsp:

    joya instalar carriles-3.2 -local. 1.joya

+0

¿Esto también adquiere dependencias transitivas? es decir, dependencias de sus dependencias? – KomodoDave

+0

Creo que descarga las dependencias de sus dependencias, excepto las que se requieren solo para desarrollar la gema en sí (consulte la respuesta de John Bachir - http://stackoverflow.com/questions/4402819/download-all-gems-dependencies#answer -4405072) –

+0

¡Muchas gracias! ¡Esto me ahorró MUCHO tiempo! – DavidZemon

3

Hm. Eso es un poco difícil. gem dependency le mostrará las dependencias de una gema, pero no irá por todo el árbol.

➔ gem dependency compass 
Gem compass-0.10.5 
    haml (>= 3.0.4, runtime) 

Gem compass-0.10.6 
    haml (>= 3.0.4, runtime) 

➔ gem dependency haml 
Gem haml-3.0.21 
    maruku (>= 0.5.9, development) 
    yard (>= 0.5.3, development) 

Gem haml-3.0.22 
    maruku (>= 0.5.9, development) 
    yard (>= 0.5.3, development) 

Gem haml-3.0.23 
    maruku (>= 0.5.9, development) 
    yard (>= 0.5.3, development) 

Gem haml-3.0.24 
    maruku (>= 0.5.9, development) 
    yard (>= 0.5.3, development) 

"desarrollo" significa que solo es necesario si está desarrollando la gema en sí. "tiempo de ejecución" significa que lo necesita para usarlo.

por lo que en este caso, la única dependencia es haml. si fuera una gema más complicada, no conozco una buena forma de generar todo el árbol.

+0

FYI: Hay algunas dependencias nuevas en la brújula v0.11 – chriseppstein

4

lo hice

export GEM_HOME=. 
export GEM_PATH=. 
gem install --no-ri --no-rdoc --install-dir . <gem> 
Cuestiones relacionadas