Chciałbym zainstalować gem z najnowszego źródła GitHub.
Jak mam to zrobic?
Jeśli korzystasz z programu pakującego, musisz dodać coś takiego do swojego Gemfile:
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git'
W przypadku, gdy istnieje .gemspec
plik, powinien on móc pobrać i zainstalować klejnot podczas działania bundle install
.
UPD. Jak wskazano w komentarzach, aby Bundler działał poprawnie, należy również dodać następujące elementy do config.ru
:
require "bundler"
Bundler.setup(:default)
require "bundler" Bundler.setup(:default)
Patrz Bundler docs więcej szczegółówgem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :branch => 'yourbranch'
gem 'redcarpet', github: 'tanoku/redcarpet'
. akash.im/2012/06/05/bundler-new-github-option.htmlgem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :tag => 'v2.3.5'
<-:tag => ''
częśćcóż, to zależy od danego projektu. Niektóre projekty mają plik * .gemspec w katalogu głównym. W takim przypadku byłoby
Inne projekty mają zadanie prowizji, zwane „klejnotem” lub „budowaniem” lub coś w tym rodzaju, w tym przypadku musisz wywołać „prowizję”, ale to zależy od projektu.
W obu przypadkach musisz pobrać źródło.
źródło
gemname-version.gem
Plik jest tworzony podczas wywoływaniagem build
gem install gemname-version.gem
polecenie instaluje lokalnie klejnot git? Nigdzie w mojej lokalnej maszynie nie mogę znaleźć klejnotu silnika zainstalowanego w ten sposób. Gdzie ukrywa go sprzedawca?gem install gemname-version.gem
linia powinna byćgem install --local gemname-version.gem
gem which gemname
powinien powiedzieć ci, gdzie jest konkretny klejnot, czy to nie działa dla ciebie?Wypróbuj klejnot specific_install, który pozwala zainstalować klejnot z repozytorium github (np. „Edge”) lub z dowolnego adresu URL. Bardzo przydatne do tworzenia klejnotów i hakowania ich na wielu maszynach.
na przykład
źródło
specific_install
klejnotu?ERROR: While executing gem ... (NoMethodError) undefined method 'build' for Gem::Package:Module
Brzmi bardzo fajnie, ale nie będę się więcej nad tym zastanawiał. Chciałem tylko napisać, że to nie działało dla mnie na wypadek, gdyby ktoś inny miał zamiar dać mu wir w oparciu o zalecenie SO.Bundler pozwala używać klejnotów bezpośrednio z repozytoriów git. W twoim Gemfile:
Aby uzyskać więcej informacji, zobacz https://bundler.io/v2.0/guides/git.html
źródło
bundle
takie zależności git-gem nie będą instalowane globalnie, ale zamiast tego w katalogu osobistym bieżącego użytkownika. Pasażer uruchomi ruby jako użytkownik twojego serwera WWW (np.www-data
), Który nie ma dostępu do tego katalogu i dlatego ten „git-gem” nie zostanie załadowany. Otrzymasz błąd... is not yet checked out. Run bundle install first
.OBSOLETE (patrz komentarze)
Jeśli projekt pochodzi z github i znajduje się na liście na http://gems.github.com/list.html , możesz po prostu dodać repozytorium github do źródeł klejnotów, aby go zainstalować:
źródło
Jeśli dostajesz swoje klejnoty z publicznego repozytorium GitHub, możesz użyć skrótu
źródło
Ty też możesz to zrobić
gem install username-projectname -s http://gems.github.com
źródło
W swoim Gemfile dodaj:
Możesz także dodać opcje ref, rozgałęzienia i tagu,
Na przykład, jeśli chcesz pobrać z określonego oddziału:
Następnie uruchomić:
źródło
Jeśli instalujesz używając bundlera zgodnie z sugestią gryzzly, a gem tworzy plik binarny, upewnij się, że używasz go,
bundle exec mygembinary
ponieważ gem jest przechowywany w katalogu bundla, który nie jest widoczny na normalnej ścieżce gem.źródło
Na świeżym komputerze z systemem Linux musisz również zainstalować
git
. Pakiet używa go za kulisami.źródło