2011-10-19 5 views
11

Utilizzando bundler, si può fare qualcosa di simile nel Gemfile:È possibile installare direttamente una gemma da un repository git?

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

che costruisce la gemma in quel pronti contro termine e lo installa. Funziona alla grande. È possibile fare qualcosa di simile usando semplicemente lo strumento gemma della riga di comando? Qualcosa come questo?

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

Ovviamente questo comando non funziona, ma c'è qualcosa di simile? So che posso clonare il repository, eseguire un gem build my_gem.gemspec e quindi un gem install my_gem-1.2.3.gem. Ma mi chiedo se c'è un one-liner diretto che nasconde questi passaggi intermedi dietro le quinte.

risposta

6

Perché a differenza di repository tipici Git, GitHub costruisce gemme, se il progetto è ospitato su GitHub e la gemma si trova nel source list Quindi è possibile aggiungere GitHub alla lista delle fonti come questo:

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

e poi poi installare le gemme, se lo desideri in un unico passaggio, in questo modo:

$ sudo gem install username-projectname 

in caso contrario, non c'è una soluzione di passaggio, e dovrete fare qualcosa di simile:

  1. scaricare il file zip gioiello/tar
  2. gem build <gemname>.gemspec
  3. sudo gem install <gemname>-x.x.x.gem
+0

il mio gioiello, non è nella lista sorgente. è un repository privato. –

+1

e quest'ultima soluzione lo so già, come delineato nel mio post. Mi stavo chiedendo se c'era un solo liner per il comando gem. forse non c'è. –

+0

Si potrebbe scrivere una funzione di shell a cui si sono passati gli argomenti. Ma, non conosco nessuna delle battute di testa. –