2013-12-16 13 views
11

W naszych szynach 3,2 Gemfile, istnieją pewne perełki zainstalowane z opcją :git skierowaną do repo na github, takie jak:Dlaczego polecenie `gem list` nie zawiera klejów zainstalowanych z opcją bundler: git?

gem 'ruote', :git => 'http://github.com/jmettraux/ruote.git' 

Po bundle install, wpisujemy gem list notować wszystkie kamienie zainstalowane. Jednak gem list nie wymienia ruote jako klejnot zainstalowany. W rzeczywistości w ogóle nie ma wymienionej listy. Zauważamy, że to samo dzieje się z wszystkimi szynami engines, które są zainstalowane z opcją :git wskazującą na repo na github. Dlaczego lista gem nie zawiera wszystkich klejnotów? Jak możemy zapewnić, że ruote jest poprawnie zainstalowany?

Odpowiedz

18

Według Bundler Documentation, perełki ze źródeł git nie pojawi się w gem list ponieważ komenda gem nie można ich przetworzyć, więc Bundler musi zrobić wszystkie prace samodzielnie. Bundler przechowuje te klejnoty w swojej własnej lokalizacji. (Zauważ, że ta lokalizacja nie ma nic wspólnego z bieżącym projektem. Jest domyślnie ~/.bundler/....)

Możesz zobaczyć, że jest zainstalowany, jeśli bundle install kończy się bez błędów. Możesz także użyć bundle show, aby zobaczyć listę klejnotów, które przygotował Bundler.

+1

Ale jak możesz wykorzystać te klejnoty? Chodzi mi o to, że proste "wymaganie" nie może ich znaleźć. – refaelos

+0

@refaelos Uruchom swoją aplikację za pomocą 'bundle exec', a następnie proste' require' to wszystko, czego potrzebujesz. –

+0

Dzięki @Moshe Katz! Zauważyłem, że wymaga również pakietu/instalacji wewnątrz pliku. – refaelos

0

gem list pokazuje wszystkie klejnoty zainstalowane na twoim komputerze.

Kiedy masz klejnot z inną lokalizacją niż klejnoty Ruby, Bundler będzie przechowywać je lokalnie dla projektu, a nie dla całego systemu.

+0

'bundler' zapisuje tylko klejnoty lokalnie dla projektu, jeśli użyjesz' --deployment'. –

1

gem list Nie jest to właściwy sposób na pokazanie klejnotów zainstalowanych dla aplikacji, ponieważ pokaże ona systemowe klejnoty.

Aby sprawdzić, jakie klejnoty są dla tej aplikacji i ich wersji, sprawdź Gemfile.lock. Będziesz miał tam najbardziej precyzyjne informacje.

Powiązane problemy