2010-10-02 18 views
18

Estoy tratando de usar el instructions here para instalar una versión pre-lanzada de una gema con bundler.Instalar una gema de Github con Bundler

La salida "paquete de instalación" enumera la gema como la que se está instalando, pero la "gema de la lista" no puede encontrarla.

Mi Gemfile:

source :gemcutter 

gem 'sinatra', '1.1.0', :git => 'http://github.com/sinatra/sinatra.git' 
gem 'RedCloth', '4.2.3' 

Aquí está una gist con el resto de mi código de ejemplo.

¿Alguien ha conseguido que este escenario funcione?

NOTA: También estoy usando RVM (en OS X). bundle show enumera la gema (y las dependencias) como existentes, pero no puedo resolverlas adecuadamente.

Gracias.

+0

¿cuál es la salida de 'rackup'? – marshally

Respuesta

2

Bundler podría haberlo instalado localmente en su aplicación. Esto podría variar mucho, dependiendo del sistema operativo y si está utilizando RVM.

¿Cuál es la salida de bundle show sinatra?

En mi caso, Sinatra se instaló aquí:

/home/marshall/.rvm/gems/[email protected]/bundler/gems/sinatra-9cfa74a7f352 

Sinatra no aparece en la lista de las gemas, pero el servidor lanza correctamente si ejecuto rackup.

+0

de haces muestran: Gems incluidos por el haz: * RedCloth (4.2.3) * bundler (1.0.1) * cremallera (1.2.1) * Sinatra (1.1.0 9cfa74a) * de inclinación (1,1) –

+0

Debería haber mencionado antes, estoy usando RVM y OS X. Así que supongo que la gema está allí, el requerimiento no se está resolviendo adecuadamente. –

0

Parece que hay un problema con el uso de Shotgun y Bundler (repositorios git solamente).

Si uso rackup para iniciar mi aplicación, todo está bien. Voy a investigar un poco más y luego presentar un error con uno (o ambos) de los proyectos.

23

Me gustaría ver las rutas de carga, y aún más depuración de allí, ejemplo:

...(master) $ irb 
irb(main):001:0> $LOAD_PATH.count 
=> 8 
irb(main):004:0> require 'bundler/setup' 
=> true 
irb(main):005:0> $LOAD_PATH.count 
=> 112 
irb(main):006:0> 

Bündler configura la ruta de carga para usted, esto significa que no todas las gemas están incluidos en la ruta de carga por defecto.

Además, desde el bundler git help:

Debido Rubygems carece de la capacidad para manejar las gemas de git, las gemas instaladas desde un repositorio git no aparecerán en la lista joya. Sin embargo, estarán disponibles después de ejecutar Bundler.setup.

Saludos, espero que esta ayuda

ED

0

gemas instaladas a través de bundler en Engine Yard ir a una carpeta diferente para aislarlos.

por lo general es /data/APP_NAME/shared/bundled_gems

Para estar seguro, compruebe el archivo de .bundle/config en su carpeta de APP en Engine Yard

Cuestiones relacionadas