2011-10-19 8 views
11

Usando bundler, se puede hacer algo como esto en el Gemfile:¿Es posible instalar directamente una gema de un repositorio de git?

gem 'my_gem', :git => '[email protected]:me/my_gem.git' 

que construye la gema en esa cesión temporal y lo instala. Funciona genial. ¿Es posible hacer algo similar simplemente usando la herramienta de línea de comandos? ¿Algo como esto?

gem install my_gem --git="[email protected]:me/my_gem.git" 

Obviamente, ese comando no funciona, pero ¿hay algo así como eso? Sé que puedo clonar el repositorio, ejecutar un gem build my_gem.gemspec y luego un gem install my_gem-1.2.3.gem. Pero me pregunto si existe una línea directa que oculte estos pasos intermedios detrás de escena.

Respuesta

6

Porque a diferencia de los depósitos típicos de Git, GitHub construye gemas, si el proyecto está alojado en GitHub y la gema se encuentra en el source list continuación, puede añadir GitHub a su lista de fuentes como esto:

$ gem sources -a http://gems.github.com 

y luego posteriormente instalar gemas como se desee en un solo paso, de esta manera:

$ sudo gem install username-projectname 

de lo contrario, no hay solución de un solo paso, y usted tiene que hacer algo como esto:

  1. descarga el archivo joya zip/tar
  2. gem build <gemname>.gemspec
  3. sudo gem install <gemname>-x.x.x.gem
+0

mi joya no está en la lista de fuentes. es un repositorio privado. –

+1

y la última solución ya lo sé, como expliqué en mi publicación. Solo me preguntaba si había una sola línea para el comando gem. tal vez no hay. –

+0

Puede escribir una función de shell a la que le haya pasado argumentos. Pero, no sé de ningún ingenioso. –

Cuestiones relacionadas