Ja, wenn Sie dies tun gem install, wird zuerst das aktuelle Verzeichnis durchsucht. Wenn Ihre .gem-Datei vorhanden ist, wird sie dann abgerufen. Ich habe es auf der Edelsteinreferenz gefunden , die Sie vielleicht auch nützlich finden:
gem install installiert den benannten gem. Es wird versucht, eine lokale Installation durchzuführen (dh eine .gem-Datei im aktuellen Verzeichnis). Wenn dies fehlschlägt, wird versucht, die neueste Version des gewünschten Gems herunterzuladen und zu installieren.
Einchecken, um zu sagen, dass dies für mich im Jahr 2019 funktioniert.
Charles Wood
1
Dies funktioniert nicht für mich im Jahr 2019
Bilderstürmer
1
Ich habe eine Gemfileaber keine .gemDatei. Was ist diese .gemDatei? Was soll es enthalten? - Warte - ich verstehe. Du meinst eine gem-name.gemDatei. Denken Sie daran, dass es unter Unix ziemlich normal ist, dass eine Datei mit einem 'beginnt.' es ist also besser, es zu formulieren.
Martin
Ich kann ab der Zukunft von 2020 bestätigen, dass der Link für mich funktioniert. Für den Fall, dass es in ferner Zukunft nicht funktioniert, hier der Schnappschuss von
Jed Burke,
329
Auch können Sie verwenden gem install --local path_to_gem/filename.gem
Dadurch wird der übliche Edelstein-Repository-Scan übersprungen, der auftritt, wenn Sie aufhören --local.
Sie können andere Magie mit finden gem install --help.
Ich lade ein Juwel wie Rubygems im Zip-Format herunter. Es gibt hier also keine .gem-Datei. Wie installiere ich das von lokal? Vielen Dank.
Erran Morad
3
@ BoratSagdiyev, eine Zip-Datei ist kein Juwel. Wie bei den meisten Zip-Dateien müssen Sie sie entpacken, bevor Sie viel damit anfangen können. Wenn es einen Edelstein enthält, können Sie die Edelsteininstallation für die extrahierte .gem-Datei verwenden. Ich erinnere mich nicht an die Interna des Edelsteinformats; Es ist möglich, dass es sich nur um eine Zip-Datei mit einem speziellen Header handelt, aber Rubygems erkennt Zip-Dateien nicht als solche.
JasonTrue
62
Sie können auch den vollständigen Dateinamen für Ihre Gem-Datei verwenden:
gem install /full/path/to/your.gem
Das funktioniert auch - es ist wahrscheinlich der einfachste Weg
Dies scheint die beste moderne Antwort zu sein. akzeptierte Antwort ist von vor 8 Jahren
sixty4bit
14
Wenn Sie die Projektdatei von github oder einer anderen scm-Host-Site herunterladen, verwenden Sie gem build, um das Projekt zuerst zu erstellen, damit Sie eine Whatever.gem-Datei im aktuellen Verzeichnis erhalten. Dann installieren Sie es!
Wenn Sie an einer lokal modifizierten Gabel eines Edelsteins arbeiten möchten, ist der beste Weg, dies zu tun
gem 'pry', path: './pry'
in einer Gemfile.
... wo ./prywäre der Klon Ihres Repositorys? Einfach bundle installeinmal ausführen und alle Änderungen an den Edelsteinquellen, die Sie vornehmen, werden sofort angezeigt. Mit gem install pry/pry.gemwerden die Quellen immer noch verschoben GEM_PATHund Sie müssen immer beide ausführen bundle gem pryund gem updatetesten.
Schauen Sie in einen Computer mit bereits installiertem Edelsteine im Cache - Verzeichnis erforderlich (standardmäßig [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)
Kopieren Sie alle " *.gemsDateien" auf einen Computer ohne Edelsteine im eigenen Edelstein-Cache (standardmäßig derselbe Benutzerpfad des ersten Schritts:[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache )
In der Konsole befindet sich im Edelstein-Cache (CD [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache) und feuert die gem install anygemwithdependencieshere(am Beispiel cucumber-2.99.0)
Es ist DRY, weil nach der Installation eines Gems die Gem-Datei standardmäßig von Rubygems in das Cache-Gem-Verzeichnis gestellt wird und es nicht sinnvoll ist, diese Dateien zu duplizieren. Es ist einfacher, wenn beide Computer die gleichen Versionen haben (oder durch paranoische Sicherheitsregeln blockiert werden: v).
Bearbeiten: In einigen Versionen von Ruby oder Rubygems funktioniert es nicht und löst Warnungen oder Fehler aus. Sie können Edelsteine an einer anderen Stelle ablegen, aber nicht DRY erhalten. Eine andere Alternative ist die Verwendung des integrierten Befehls launch gem serverund das Hinzufügen der localhost-URL in Edelsteinquellen Informationen unter:
https://guides.rubygems.org/run-your-own-gem-server/
Sie können Edelsteine von https://rubygems.org/gems/ herunterladen. oder Ihren lokalen Edelstein über Bundle und Rack erstellen.
z.B:
Bundle Gem yourGemName
Rechen installieren
Achten Sie darauf, Abhängigkeiten zu installieren, bevor Sie tatsächliche Edelsteine installieren.
gem install --local /pathToFolder/xxx-2.6.1.gem
Hinweis: Wenn Sie fließendes td-Mittel und Rubin auf derselben Maschine verwenden. Stellen Sie sicher, dass Sie den Befehl td-agent-gem von td-agent verwenden. td-agent hat einen eigenen Ruby.
Antworten:
Ja, wenn Sie dies tun
gem install
, wird zuerst das aktuelle Verzeichnis durchsucht. Wenn Ihre .gem-Datei vorhanden ist, wird sie dann abgerufen. Ich habe es auf der Edelsteinreferenz gefunden , die Sie vielleicht auch nützlich finden:quelle
Gemfile
aber keine.gem
Datei. Was ist diese.gem
Datei? Was soll es enthalten? - Warte - ich verstehe. Du meinst einegem-name.gem
Datei. Denken Sie daran, dass es unter Unix ziemlich normal ist, dass eine Datei mit einem 'beginnt.' es ist also besser, es zu formulieren.Auch können Sie verwenden
gem install --local path_to_gem/filename.gem
Dadurch wird der übliche Edelstein-Repository-Scan übersprungen, der auftritt, wenn Sie aufhören
--local
.Sie können andere Magie mit finden
gem install --help
.quelle
Sie können auch den vollständigen Dateinamen für Ihre Gem-Datei verwenden:
Das funktioniert auch - es ist wahrscheinlich der einfachste Weg
quelle
Wenn Sie Ihre Edelsteine mit Bundler erstellen:
Sie können sie mit Rake installieren, nachdem sie geschrieben wurden:
Wahrscheinlich weiß
rake install
auch Ihr heruntergeladener Edelstein Bescheid .quelle
Wenn Sie die Projektdatei von github oder einer anderen scm-Host-Site herunterladen, verwenden Sie gem build, um das Projekt zuerst zu erstellen, damit Sie eine Whatever.gem-Datei im aktuellen Verzeichnis erhalten. Dann installieren Sie es!
quelle
Wenn Sie an einer lokal modifizierten Gabel eines Edelsteins arbeiten möchten, ist der beste Weg, dies zu tun
gem 'pry', path: './pry'
in einer Gemfile.
... wo
./pry
wäre der Klon Ihres Repositorys? Einfachbundle install
einmal ausführen und alle Änderungen an den Edelsteinquellen, die Sie vornehmen, werden sofort angezeigt. Mitgem install pry/pry.gem
werden die Quellen immer noch verschobenGEM_PATH
und Sie müssen immer beide ausführenbundle gem pry
undgem update
testen.quelle
Gehen Sie zu dem Pfad, in dem sich der Edelstein befindet, und rufen Sie an
gem install -l gemname.gem
quelle
Nun, das ist meine DRY-Installation:
[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
)*.gems
Dateien" auf einen Computer ohne Edelsteine im eigenen Edelstein-Cache (standardmäßig derselbe Benutzerpfad des ersten Schritts:[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
)[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
) und feuert diegem install anygemwithdependencieshere
(am Beispielcucumber-2.99.0
)Es ist DRY, weil nach der Installation eines Gems die Gem-Datei standardmäßig von Rubygems in das Cache-Gem-Verzeichnis gestellt wird und es nicht sinnvoll ist, diese Dateien zu duplizieren. Es ist einfacher, wenn beide Computer die gleichen Versionen haben (oder durch paranoische Sicherheitsregeln blockiert werden: v).
quelle
Sie können Edelsteine von https://rubygems.org/gems/ herunterladen. oder Ihren lokalen Edelstein über Bundle und Rack erstellen.
z.B:
Achten Sie darauf, Abhängigkeiten zu installieren, bevor Sie tatsächliche Edelsteine installieren.
Hinweis: Wenn Sie fließendes td-Mittel und Rubin auf derselben Maschine verwenden. Stellen Sie sicher, dass Sie den Befehl td-agent-gem von td-agent verwenden. td-agent hat einen eigenen Ruby.
quelle