2010-04-05 11 views

Odpowiedz

303

w przypadku korzystania Bundler, trzeba dodać coś takiego do Gemfile:

gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git' 

A w przypadku, gdy istnieje .gemspec plików, sh może pobrać i zainstalować klejnot podczas działania bundle install.

+8

Potrzebowałem również dodać następujące (dodane do mojego config.ru): "wymagać" bundler " Bundler.setup (: domyślnie)' Zobacz [dokumenty do pakowania] (http://gembundler.com/bundler_setup.html) po więcej szczegółów –

+37

Dodatkowo można podać opcje ref, branch lub tag, na przykład 'gem 'redcarpet',: git => 'git: //github.com/tanoku/redcarpet.git',: branch => 'yourbranch' ' –

+9

, jeśli wdrażasz do Heroku, możesz użyć' https: // 'zamiast' git: // ' –

370

Cóż, to zależy od danego projektu. Niektóre projekty mają plik * .gemspec w katalogu głównym. W tym przypadku byłoby

gem build GEMNAME.gemspec 
gem install gemname-version.gem 

Inne projekty mają zadanie natarcia, zwany „klejnotem” lub „zbudować” lub coś w tym rodzaju, w tym przypadku trzeba powołać „grabie”, ale to zależy od projekt.

W obu przypadkach należy pobrać źródło.

+3

Dzięki, że bardzo pomaga. – Vojto

+2

Dzięki - doskonała odpowiedź. –

+16

Wystarczy wskazówka, aby dać znać ludziom, co tak naprawdę się dzieje. Plik 'gemname-version.gem' jest tworzony podczas wywoływania' gem build' –

17

OBSOLETE (patrz komentarze)

Jeśli projekt jest z github, a zawarte w liście http://gems.github.com/list.html, można po prostu dodać repo GitHub do źródeł kamienie, aby go zainstalować:

$ gem sources -a http://gems.github.com 
$ sudo gem install username-projectname 
+23

GitHub nie zawiera już klejnotów, więc to już nie działa. – nickh

+1

o rly? Właśnie zrobiłem to i to działało ... idę do gems.github.com przed dodaniem go do źródeł yr? (ale nie używaj sudo) – esharp

+6

@sharp, hostują te, które zbudowali, ale już ich nie budują. Jeśli klejnot zostanie zaktualizowany [od 2009 r.] (Https://github.com/blog/500-state-of-the-hub-rackspace-day-0), kopia gems.github.com będzie nieaktualna. – Tobu

3

Jeśli zainstalować używając Bundler jak sugeruje gryzzly a gem tworzy binarny następnie upewnij się go uruchomić z bundle exec mygembinary jak klejnot jest przechowywany w katalogu Bundler który nie jest widoczny na normalnej ścieżce gem.

209

Skorzystaj z gem specific_install, aby zainstalować gem z jego repozytorium github (np. "Edge") lub z dowolnego adresu URL. Bardzo przydatne do rozwidlania klejnotów i hakowania na nich na wielu maszynach i tym podobnych.

gem install specific_install 
gem specific_install -l <url to a github gem> 

np.

gem specific_install https://github.com/githubsvnclone/rdoc.git 
+2

można dodać więcej wyjaśnień na klej 'specific_install'? – microspino

+1

Dokładnie tego szukałem, podobnego do obsługi pip Pythona. gem specific_install -l działał jak czar! – Murph

+5

Super cool! Szkoda, że ​​nie jest w domyślnej linii poleceń gem. –

1

Na świeżym komputerze z systemem Linux instaluje się również polecenie git. Polecenie pakowania używa go za kulisami.

5

Ponadto można zrobić gem install username-projectname -s http://gems.github.com

+5

Nieaktualne, zobacz komentarze drugiej odpowiedzi. –

+1

Wciąż mi pomógł w rozwiązaniu problemu ze starą bazą kodu. Tak, jego 2013 i pracuję nad projektem szynowym 2.3.4. –

13

Jeśli otrzymujesz swoje skarby z publicznego repozytorium GitHub, można użyć skrótów

gem 'nokogiri', github: 'tenderlove/nokogiri' 
24

Bundler pozwala wykorzystać kamienie bezpośrednio z repozytorium git. W swojej Gemfile:

# Use the http(s), ssh, or git protocol 
gem 'foo', git: 'https://github.com/dideler/foo.git' 
gem 'foo', git: '[email protected]:dideler/foo.git' 
gem 'foo', git: 'git://github.com/dideler/foo.git' 

# Specify a tag, ref, or branch to use 
gem 'foo', git: '[email protected]:dideler/foo.git', tag: 'v2.1.0' 
gem 'foo', git: '[email protected]:dideler/foo.git', ref: '4aded' 
gem 'foo', git: '[email protected]:dideler/foo.git', branch: 'development' 

# Shorthand for public repos on GitHub (supports all the :git options) 
gem 'foo', github: 'dideler/foo' 

Aby uzyskać więcej informacji, zobacz http://bundler.io/git.html

2

W swojej Gemfile dodaj następujący:

gem 'example', :git => 'git://github.com/example.git' 

Można również dodać ref, gałęzi i tagów opcji

Na przykład, jeśli chcesz pobrać z określonego oddziału:

gem 'example', :git => "git://github.com/example.git", :branch => "my-branch" 

Następnie uruchom:

bundle install 
Powiązane problemy