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.