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.
Gemfile
aber keine .gem
Datei. Was ist diese .gem
Datei? Was soll es enthalten? - Warte - ich verstehe. Du meinst eine gem-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
.
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 install
auch 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 ./pry
wäre der Klon Ihres Repositorys? Einfach bundle install
einmal ausführen und alle Änderungen an den Edelsteinquellen, die Sie vornehmen, werden sofort angezeigt. Mit gem install pry/pry.gem
werden die Quellen immer noch verschoben GEM_PATH
und Sie müssen immer beide ausführen bundle gem pry
und gem update
testen.
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
)*.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 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 server
und 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.