2013-04-19 16 views
5

Stworzyłem prywatny klejnot, który sam utworzyłem. Wszystko szło dobrze, dopóki ktoś nie stworzył klejnotu o tej samej nazwie na rubygems.org. Ponieważ rubygems.org ma najwyższy priorytet nad moim adresem URL serwera gem. Nie mogę już zainstalować mojego klejnotu. Starałem się usunąć źródła rubygems:Zmiana kolejności czytania źródeł Rubygem

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

i zainstalować go ponownie tak chodzi po liście źródłowej gem, ale to nie działa.

Czy istnieje sposób zmiany kolejności wyszukiwania źródła gem?

Pamiętaj, że nie chcę zmieniać nazwy mojego klejnotu.

+0

Nie jestem pewien, czy to będzie działać, ale można spróbować ręcznie edytując '.gemrc' plik i zmienić kolejność źródeł tam. – matt

Odpowiedz

2

Możesz spróbować specific_install GEM:

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

Innym sposobem jest jednoznacznie stwierdzić serwer gem tak:

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

Najlepszym rozwiązaniem, moim zdaniem, jest używać Bundler. W swojej Gemfile dodać:

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

+0

Dzięki, spróbowałem: 'gem install mygem -s http: // gems.example.com' i to nie zadziałało. Mam to do roboty potem, ale nie wiem dlaczego. Może to być problem z pamięcią podręczną. – Martinos

+0

Czy to działa, czy nie? –

+0

Zamawiam, aby zainstalować mój klejnot musiałem "źródło gem -r http: // rubygems.org" następnie "gem zainstalować mygem -s http: // gems.example.com". A następnie dodajemy http://rubygems.org. Zastanawiam się, czy istnieje lepszy sposób na wyczyszczenie pamięci podręcznej. – Martinos

3

Wygląda na to, że nie można mieć pustą gem cache. Jeśli ręcznie usuniesz pamięć podręczną http://rubygems.org za pomocą gem source -r http://rubygems.org, a nie zostaną zdefiniowane inne źródła, zostanie ona automatycznie ponownie wypełniona. To naprawdę irytująca nieprawidłowość.

Co mi dolega, dodając moje źródło (serwer wewnętrzny), a następnie ręcznie odczytując rubygemy.

$ 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

Dzięki za odpowiedź, ale nie mam już problemu, ponieważ nie pracuję nad projektem, w którym byłem. Jeśli kiedykolwiek napotkam problem, wypróbuję Twoje rozwiązanie i udzielę informacji zwrotnych. – Martinos

Powiązane problemy