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.
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.
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
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!
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ć.
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)
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)
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/
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.
Odpowiedzi:
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ć:źródło
Gemfile
ale nie.gem
plik. Czym jest ten.gem
plik? Co powinien zawierać? - Czekaj - rozumiem. Masz na myśligem-name.gem
plik. Pamiętaj, że w Uniksie plik jest rozpoczynany od „.” więc lepiej to przeliterować.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
.źródło
możesz również użyć pełnej nazwy pliku do swojego pliku klejnotów:
to również działa - to prawdopodobnie najłatwiejszy sposób
źródło
Jeśli tworzysz swoje klejnoty w pakiecie:
Możesz zainstalować je z prowizją po ich napisaniu:
Są szanse, że twój pobrany klejnot też będzie wiedział
rake install
.źródło
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!
źródło
Jeśli chcesz pracować nad lokalnie zmodyfikowanym widelcem klejnotu, najlepszym sposobem na to jest
gem 'pry', path: './pry'
w Gemfile.
... gdzie
./pry
byłby klon twojego repozytorium. Po prostu uruchombundle install
raz, a wszelkie zmiany w źródłach klejnotów zostaną natychmiast odzwierciedlone. Dziękigem install pry/pry.gem
, źródła są nadal przenoszoneGEM_PATH
i zawsze będziesz musiał uruchomić obabundle gem pry
igem update
przetestować.źródło
Idź do ścieżki, w której znajduje się klejnot i zadzwoń
gem install -l gemname.gem
źródło
Cóż, to moja instalacja SUCHA:
[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
)*.gems
pliki” 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
)[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
) i odpalgem install anygemwithdependencieshere
(przykładcucumber-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)
źródło
Możesz pobrać klejnoty z https://rubygems.org/gems/ lub zbudować lokalny klejnot za pośrednictwem pakietu i stojaka.
na przykład:
Zadbaj o instalację zależności przed zainstalowaniem prawdziwych klejnotów.
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.
źródło