Vraag Waar slaat de juwelier edelstenen op?


Ik weet dat bij gebruik gem install, de edelsteen wordt opgeslagen onder /home/gebruikersnaam/.rvm/gems/, waaronder edelsteen de edelsteen is geïnstalleerd.

Maar als ik Bundler gebruik en de edelsteen specificeer in Gemfile, wanneer worden bundel-installaties uitgevoerd, waar worden die edelstenen dan opgeslagen? En wat als ik het juweel al heb geïnstalleerd met gem install, als ik bundel installeer, zal het de vorige edelsteen gebruiken die is geïnstalleerd met gem install?


49
2017-07-24 16:13


oorsprong


antwoorden:


Het hangt er van af. In de gebruikelijke ontwikkelconfiguratie worden ze geïnstalleerd waar ze zouden zijn wanneer je een edelsteen "normaal" installeert (door te draaien gem install foo) en bundler zullen edelstenen die al aanwezig zijn niet opnieuw installeren. Deze locatie is afhankelijk van hoe rubygems zelf is geconfigureerd.

Als u bundel-installatie uitvoert met de --deployment optie dan zullen de edelstenen worden geïnstalleerd op een locatie die uniek is voor uw app (u kunt dit als een afzonderlijke optie doorgeven, maar het is standaard naar leverancier / bundel)

Je kunt ook rennen bundle package om alle .gem-bestanden op te slaan waar uw app in gebruikt vendor/cache. hardlopen bundle install geeft de voorkeur aan edelstenen in leverancier / cache voor edelstenen op andere locaties.


43
2017-07-24 16:20



Als je wilt weten waar een bepaalde edelsteen is opgeslagen, kun je rennen bundle show <gem-name>. Bijvoorbeeld:

user@host$ bundle show rake
/var/bundle/ruby/2.1.0/gems/rake-10.4.2

44
2017-09-17 19:55



Hier /usr/local/lib/ruby/gems/2.1.0/gems/ en hier: /usr/local/lib/ruby/gems/2.1.0/bundler/gems/.


3
2017-09-27 11:03