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.


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.


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


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.


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!


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ć.



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/


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.