Jak mogę zainstalować lokalny klejnot?

Odpowiedzi:

288

Tak, kiedy to zrobisz gem install, najpierw przeszuka bieżący katalog, więc jeśli plik .gem tam jest, to go pobierze. Znalazłem go na referencji klejnotów , co może ci się przydać:

gem install zainstaluje nazwany klejnot. Spróbuje zainstalować lokalnie (tj. Plik .gem w bieżącym katalogu), a jeśli to się nie powiedzie, spróbuje pobrać i zainstalować najnowszą wersję klejnotu, który chcesz.

Chris Bunch
źródło
2
Link kończy się nieskończonymi przekierowaniami :(
Ain Tohvri,
2
Sprawdzam, czy to działa dla mnie w 2019 r.
Charles Wood
1
Mam plik, Gemfileale nie .gemplik. Czym jest ten .gemplik? Co powinien zawierać? - Czekaj - rozumiem. Masz na myśli gem-name.gemplik. Pamiętaj, że w Uniksie plik jest rozpoczynany od „.” więc lepiej to przeliterować.
Martin
Mogę potwierdzić z przyszłości 2020, link działa dla mnie. W przypadku, gdy nie zadziała w odległej przyszłości, oto migawka
Jed Burke
329

Możesz także użyć gem install --local path_to_gem/filename.gem

Pominie to zwykłe skanowanie repozytorium klejnotów, które ma miejsce po przerwaniu --local.

Możesz znaleźć inną magię gem install --help.

JasonTrue
źródło
Pobieram klejnot, taki jak rubygemy w formacie zip. Więc nie ma tutaj pliku .gem. Jak zainstalować to z lokalnego? Dziękuję Ci.
Erran Morad,
3
@BoratSagdiyev, plik zip nie jest klejnotem. Jak większość plików zip, musisz go rozpakować, zanim będziesz mógł z nim wiele zrobić. Jeśli zawiera klejnot, możesz użyć instalacji klejnotów w wyodrębnionym pliku .gem. Nie pamiętam elementów wewnętrznych formatu klejnotów; jest możliwe, że może to być plik zip ze specjalnym nagłówkiem, ale rubygems nie rozpoznaje plików zip jako takich.
JasonTrue
62

możesz również użyć pełnej nazwy pliku do swojego pliku klejnotów:

gem install /full/path/to/your.gem

to również działa - to prawdopodobnie najłatwiejszy sposób

lesmana
źródło
38

Jeśli tworzysz swoje klejnoty w pakiecie:

# do this in the proper directory
bundle gem foobar

Możesz zainstalować je z prowizją po ich napisaniu:

# cd into your gem directory
rake install

Są szanse, że twój pobrany klejnot też będzie wiedział rake install.

Boris Stitnicky
źródło
3
to wydaje się najlepszą współczesną odpowiedzią. zaakceptowana odpowiedź pochodzi z 8 lat temu
sixty4bit
14

jeśli pobierasz plik projektu z github lub innej strony hosta SCM, użyj gem build, aby najpierw zbudować projekt, abyś mógł uzyskać plik what.gem w bieżącym katalogu. Następnie zainstaluj klejnot!

hechen0
źródło
13

Jeśli chcesz pracować nad lokalnie zmodyfikowanym widelcem klejnotu, najlepszym sposobem na to jest

gem 'pry', path: './pry'

w Gemfile.

... gdzie ./prybyłby klon twojego repozytorium. Po prostu uruchom bundle installraz, a wszelkie zmiany w źródłach klejnotów zostaną natychmiast odzwierciedlone. Dzięki gem install pry/pry.gem, źródła są nadal przenoszone GEM_PATHi zawsze będziesz musiał uruchomić oba bundle gem pryi gem updateprzetestować.

Matthias Winkelmann
źródło
5

Idź do ścieżki, w której znajduje się klejnot i zadzwoń gem install -l gemname.gem

leobelizquierdo
źródło
0

Cóż, to moja instalacja SUCHA:

  1. Spójrz na komputerze z już zainstalowanych klejnotów potrzebnych w katalogu pamięci podręcznej (domyślnie: [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)
  2. Skopiować wszystkie „ *.gemspliki” do komputera bez klejnotów w własnym miejscu gem podręcznej (domyślnie tą samą ścieżką patrona pierwszego kroku: [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)
  3. W konsoli umieść w pamięci podręcznej klejnotów (cd [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache) i odpal gem install anygemwithdependencieshere(przykład cucumber-2.99.0)

Jest SUCHY, ponieważ po zainstalowaniu dowolnego klejnotu domyślnie rubygemy umieszczają plik klejnotu w katalogu klejnotów pamięci podręcznej i nie mają sensu powielać tych plików, łatwiej jest, jeśli chcesz, aby oba komputery miały te same wersje (lub przesadzone przez paranoiczne reguły bezpieczeństwa: v)

Edycja: W niektórych wersjach ruby ​​lub rubygemów nie działa i nie uruchamia alertów lub błędów, możesz umieścić klejnoty w innym miejscu, ale nie uzyskać DRY, inną alternatywą jest uruchomienie zintegrowanej komendy gem serveri dodanie adresu localhost do źródeł klejnotów, więcej informacje w: https://guides.rubygems.org/run-your-own-gem-server/

Daniel Antonio Nuñez Carhuayo
źródło
0

Możesz pobrać klejnoty z https://rubygems.org/gems/ lub zbudować lokalny klejnot za pośrednictwem pakietu i stojaka.

na przykład:

  • pakiet gem yourGemName
  • instalacja prowizji

Zadbaj o instalację zależności przed zainstalowaniem prawdziwych klejnotów.

  • gem install --local /pathToFolder/xxx-2.6.1.gem

Uwaga: Jeśli używasz płynnego td-agent i ruby ​​na tym samym komputerze. Pamiętaj, aby użyć polecenia td-agent-gem td-agenta. td-agent ma własnego Rubiego.

Vinayak Mishra
źródło