2013-04-19 9 views
5

Ho creato una gemma privata che ho ospitato personalmente. Tutto andava bene fino a quando qualcuno non ha creato una gemma con lo stesso nome su rubygems.org. Poiché rubygems.org ha la precedenza più alta sull'URL del mio server gem. Non sono più in grado di installare la mia gemma. Ho provato a rimuovere la fonte rubygems:Modifica dell'ordine di lettura delle sorgenti Rubygem

$ sudo gem source -r http://rubygems.org 

e reinstallarla in modo che viene dopo nella lista fonte gemma, ma non funziona.

C'è un modo per modificare l'ordine di ricerca del sorgente gemma?

Nota che non voglio rinominare la mia gemma.

+0

Non sono sicuro che funzionerà, ma è possibile provare a modificare manualmente il file '.gemrc' e modificare l'ordine delle fonti. – matt

risposta

2

Puoi provare il specific_install gemma:

gem install specific_install gem specific_install -l <git-url>

Un altro modo è quello di dichiarare esplicitamente il server gemma in questo modo:

gem install mygem -s http://gems.example.com

L'opzione migliore, a mio parere, è usare Bundler. Nel vostro Gemfile aggiungere:

gem 'mygem', :git => 'git://git.example.com/myrepo.git'

+0

Grazie, ho provato: 'gem installa mygem -s http: // gems.example.com' e non funzionava. L'ho fatto funzionare dopo, ma non so perché. Potrebbe essere un problema di cache. – Martinos

+0

Quindi ha funzionato o no? –

+0

Per installare il mio gioi ho dovuto 'gem source -r http: // rubygems.org' quindi' gem install mygem -s http: // gems.example.com'. E poi aggiungendo di nuovo http://rubygems.org. Mi chiedo se c'è un modo migliore per pulire la cache. – Martinos

3

Sembra che non si può avere una cache gemma vuota. Se si elimina la cache http://rubygems.org manualmente con gem source -r http://rubygems.org e non ci sono altre fonti definite, questa viene automaticamente ripopolata. Una specie di fastidiosa disfunzione, davvero.

Il trucco per me era aggiungere la mia fonte (un server interno) e quindi leggere manualmente i rubygems.

$ gem source add http://internal-server/ 
$ gem source 
*** CURRENT SOURCES *** 

http://rubygems.org/ 
http://internal-server/ 
$ gem source -r http://rubygems.org/ 
$ gem source 
*** CURRENT SOURCES *** 

http://internal-server/ 
$ gem source -a http://rubygems.org/ 
$ gem source 
*** CURRENT SOURCES *** 

http://internal-server/ 
http://rubygems.org/ 
+0

Grazie per la risposta, ma non ho più il problema poiché non sto lavorando al progetto su cui mi trovavo. Se mai dovessi incontrare il problema, proverò la tua soluzione e ti darò un feedback. – Martinos

Problemi correlati