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:
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.
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.
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.
Wenn Sie Ihre Edelsteine mit Bundler erstellen:
# do this in the proper directory
bundle gem foobar
Sie können sie mit Rake installieren, nachdem sie geschrieben wurden:
# cd into your gem directory
rake install
Wahrscheinlich weiß rake installauch Ihr heruntergeladener Edelstein Bescheid .
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.
Gehen Sie zu dem Pfad, in dem sich der Edelstein befindet, und rufen Sie an gem install -l gemname.gem
Nun, das ist meine DRY-Installation:
[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)*.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 )[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:
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.