Ich weiß, dass bei der Verwendung gem install
der Edelstein unter /home/username/.rvm/gems/ gespeichert wird, unter welchem Gemset der Edelstein installiert wurde.
Aber wenn ich Bundler verwende und den Edelstein in der Gemfile spezifiziere, wo werden diese Edelsteine gespeichert, wenn ich die Bundle-Installation ausführe? Und was ist, wenn ich das Gem bereits mit installiert habe gem install
und wenn ich die Bundle-Installation ausführe, wird es das vorherige Gem verwenden, das mit installiert wurde gem install
?
bundle show <gemname>
Antworten:
Es hängt davon ab, ob. In der üblichen Entwicklungskonfiguration werden sie dort installiert, wo sie sich befinden würden, wenn Sie einen Edelstein "normal" (durch Ausführen
gem install foo
) installieren und der Bundler bereits vorhandene Edelsteine nicht neu installiert. Dieser Speicherort hängt davon ab, wie Rubygems selbst konfiguriert ist.Wenn Sie die Bundle-Installation mit der
--deployment
Option ausführen, werden die Edelsteine an einem für Ihre App eindeutigen Speicherort installiert (Sie können dies als separate Option übergeben, standardmäßig jedoch als Anbieter / Bundle).Sie können auch ausführen
bundle package
, um alle .gem-Dateien zu speichern, in denen Ihre App verwendetvendor/cache
. Beim Ausführenbundle install
werden Edelsteine im Anbieter / Cache Edelsteinen an anderen Orten vorgezogen.quelle
$ bundle install --path vendor/bundle
gem install
(was von GEM_HOME, GEM_PATH usw. abhängt)Wenn Sie herausfinden möchten, wo ein bestimmter Edelstein gespeichert ist, können Sie ihn ausführen
bundle info <gem-name>
. Zum Beispiel:user@host$ bundle info rake /var/bundle/ruby/2.1.0/gems/rake-10.4.2
Für ältere Versionen von Rake könnte der Befehl sein
bundle show <gem_name>.
quelle
bundle show GEM
zugunsten vonbundle info GEM
Hier
/usr/local/lib/ruby/gems/2.1.0/gems/
und hier :/usr/local/lib/ruby/gems/2.1.0/bundler/gems/
.quelle
Beachten Sie, dass Edelsteine auch in dem
bundle
Ordner in Ihrem "Edelsteinpfad" installiert sind (siehe :)bundle env
. Dies geschieht zum Beispiel mit Edelsteinen, die installiert wurden vongit
:gem 'my-gem', git: "https://github.com/x/y.git"
Ich gehe davon aus, dass benutzerdefinierte Installationen nicht mit Installationen von einem Gem-Server in Konflikt stehen.
quelle
Ich benutze, um
bundle config path
zu sehen, wo Edelsteine aufbewahrt werden.quelle