Odpowiedzi:
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)
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :branch => 'yourbranch'
gem 'redcarpet', github: 'tanoku/redcarpet'
. akash.im/2012/06/05/bundler-new-github-option.html
gem '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
gem build GEMNAME.gemspec
gem install gemname-version.gem
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.
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.
gem install specific_install
gem specific_install -l <url to a github gem>
na przykład
gem specific_install https://github.com/githubsvnclone/rdoc.git
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:
# Use the http(s), ssh, or git protocol
gem 'foo', git: 'https://github.com/dideler/foo.git'
gem 'foo', git: 'git@github.com:dideler/foo.git'
gem 'foo', git: 'git://github.com/dideler/foo.git'
# Specify a tag, ref, or branch to use
gem 'foo', git: 'git@github.com:dideler/foo.git', tag: 'v2.1.0'
gem 'foo', git: 'git@github.com:dideler/foo.git', ref: '4aded'
gem 'foo', git: 'git@github.com: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 https://bundler.io/v2.0/guides/git.html
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ć:
$ gem sources -a http://gems.github.com
$ sudo gem install username-projectname
Jeśli dostajesz swoje klejnoty z publicznego repozytorium GitHub, możesz użyć skrótu
gem 'nokogiri', github: 'tenderlove/nokogiri'
Ty też możesz to zrobić gem install username-projectname -s http://gems.github.com
W swoim Gemfile dodaj:
gem 'example', :git => 'git://github.com/example.git'
Możesz także dodać opcje ref, rozgałęzienia i tagu,
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 uruchomić:
bundle install
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.
Na świeżym komputerze z systemem Linux musisz również zainstalować git
. Pakiet używa go za kulisami.
require "bundler" Bundler.setup(:default)
Patrz Bundler docs więcej szczegółów