2011-04-25 24 views
5

He ejecutado "paquete de instalación" en una aplicación Rails 3 existente que tiene las gemas en proveedor/caché (supongo que se empacaron a través de "paquete paquete" antes) y archivos válidos Gemfile y Gemfile.lock .paquete de instalación y RVM

Lo que vi es que creó una carpeta .undle en mi directorio de inicio.

Estoy utilizando también RVM. Cuando probé "gem list", no vi ninguna de las gemas en el proveedor/caché instalado.

¿Estoy haciendo algo mal? Donde quiera que aparezcan los artículos del bundler, ejecute "bundle" o "bundle install" para instalar las gemas en los archivos Gemfile y Gemfile.lock. ¿El problema está relacionado con el uso de RVM?

Gracias por cualquier consejo.

+0

buscar en la carpeta devuelto por 'gemdir' RVM. Ahí es donde se instalarán. – Zabba

+0

¿Pero no están allí? ¿Debo ejecutar lo siguiente: paquete de instalación 'rvm gemdir'? –

+1

Básicamente, bundler crea una estructura dir de la siguiente manera: ruby ​​/ 1.8/{bin, cache, doc, gems, specifications}. Mi pregunta sería, entonces, cómo hacer que la instalación del paquete cree esta estructura dir en el rvm ruby ​​apropiado, es decir, poner el caché del paquete. gemas, y especificaciones en el rvm ruby ​​cache, gemas y especificaciones? ¿Hay una manera de hacerlo? –

Respuesta

2

Mire en rvm env gemdir, también verifique lo que tiene configurado en .rvmrc en términos de gemset. Haz bundle install y debería obtener todas las gemas.

Comprobar .bundle haciendo $ cat .bundle para ver su contenido, y comprobar si está copiando las gemas para vendor/ruby. Este solo será el caso si se suministró bundle install --path vendor/ruby (Ref).

+2

Encontré el problema. Cuando le das una instalación arg a bundle, sigue instalando las gemas dentro de este directorio, incluso si ejecutas este directorio y comienzas desde el principio con la "instalación del paquete" pura. –

+1

De hecho. '.bundle' necesita ser editado para evitar que esto surta efecto para futuras ejecuciones de' bundle install'. –

3

Si usted le da un argumento a bundle install, que se mantendrá la instalación de las gemas dentro de este directorio, incluso si rm -rf ese directorio y empezar de cero con la pura bundle install, como se señala en el comentario de Emil. Este nuevo directorio es tomado por defecto por bundler, e incluso reemplaza lo que usted declara en el archivo .rvmrc.

Para eliminar esta restricción, sólo tiene que editar el archivo .bundle/config y elimine el archivo declarar BUNDLE_PATH, por ejemplo,

BUNDLE_PATH: /usr/local/lib/ 
+0

Esto es lo que finalmente hizo por mí. Después de eliminar esa línea en '.bundle/config', eliminó todo lo que necesitaba en la ubicación' rvm' adecuada. –

Cuestiones relacionadas