Ich weiß, dass bei Verwendung von gem install
Der Edelstein unter /home/username/.rvm/gems/ gespeichert wird, unter welchem Edelsteinsatz der Edelstein installiert wurde.
Aber wenn ich Bundler verwende und das Gem in der Gem-Datei spezifiziere, werden diese Gems bei der Bundle-Installation wo gespeichert? Und was ist, wenn ich den Edelstein bereits mit gem install
Installiert habe? Wenn ich die Bundle-Installation ausführe, wird dann der vorherige Edelstein verwendet, der mit gem install
Installiert wurde?
Es hängt davon ab, ob. In der üblichen Entwicklungsumgebung werden sie dort installiert, wo sie sich befinden würden, wenn Sie einen Edelstein "normal" installieren (indem Sie gem install foo
Ausführen), und der Bundler installiert keine Edelsteine, die bereits vorhanden sind. Dieser Speicherort hängt davon ab, wie Rubygems selbst konfiguriert ist.
Wenn Sie die Bundle-Installation mit der Option --deployment
Ausführen, werden die Gems an einem für Ihre App eindeutigen Speicherort installiert (Sie können dies als separate Option übergeben, der Standardwert ist jedoch Hersteller/Bundle).
Sie können auch bundle package
Ausführen, um alle von Ihrer App verwendeten .gem-Dateien in vendor/cache
Zu speichern. Wenn Sie bundle install
Ausführen, werden Edelsteine im Anbieter/Cache Edelsteinen an anderen Orten vorgezogen.
Wenn Sie herausfinden möchten, wo ein bestimmtes Juwel gespeichert ist, können Sie bundle show <gem-name>
. Beispielsweise:
[email protected]$ bundle show rake
/var/bundle/Ruby/2.1.0/gems/rake-10.4.2
Hier /usr/local/lib/Ruby/gems/2.1.0/gems/
und hier: /usr/local/lib/Ruby/gems/2.1.0/bundler/gems/
.