Per quanto ne so, sia rails:freeze:gems
che il rake gems:unpack
stanno posizionando le gemme su /vendor
. rails:freeze:gems
li posiziona su /vendor/rails
, gems:unpack
posizionali su /vendor/gems
. Il punto per me sembra essere lo stesso, comunque. In entrambi i casi l'obiettivo è quello di correggere le gemme e le loro versioni come erano durante lo sviluppo. C'è qualche altra differenza? Mi sembra una duplicazione ora ..Qual è la differenza tra le rastrelliere: congelare: gemme e gemme di rastrello: decomprimere?
risposta
Dalla mia comprensione, gemma: scompattare sarà decomprimere terze parti gemma vostra applicazione ha bisogno in vendor/gemme.
binari: blocco: le gemme bloccano solo quelle gemme che hanno a che fare con le rotaie stesse, quindi congela la tua app a una versione specifica di binari. Quindi la diversa directory/vendor/rails.
di commentare un po 'di più:
C'è questa linea in config/environment.rb
# Specifies gem version of Rails to use when vendor/rails is not present RAILS_GEM_VERSION = '2.3.2' unless defined? RAILS_GEM_VERSION
Quindi per impostazione predefinita, le rotaie sarà verificare se il venditore/rotaie esiste directory, e utilizzare le versioni di quelle gemme se lo fa. In caso contrario, è necessario impostare la versione di rotaie userà, e rotaie cercherà di tirare le gemme dal sistema locale.
Quindi l'unica differenza tra i due comandi che vedo è che rails:freeze:gems
scarica SOLO i file di rotaie in fornitore/rotaie, che è esattamente dove le rotaie vogliono che siano.
Il motivo per cui si desidera utilizzare gem:unpack
è di scaricare le gemme di terze parti da cui dipende l'applicazione, quindi ovunque l'applicazione venga eseguita, queste gemme non dovranno essere installate localmente.
Si può pensare a rails:freeze:gems
come una scelta rapida che fa semplicemente un gem:unpack
di solo gemme di rotaie nei binari di directory (/ vendor/rails), in modo che non sia necessario eseguirlo manualmente. Ma sì, dietro le quinte mi aspetto rails:freeze:gems
probabilmente utilizza gem:unpack
- 1. Qual è la differenza tra gemme e plug-in?
- 2. Aggiornamento di Gemfile da Gemfile.lock, per congelare le gemme
- 3. Qual è la differenza tra gemme di rubino e formule di birra?
- 4. Qual è la differenza tra le gemme di rubino per il bootstrap?
- 5. Qual è la differenza tra bundle.setup e bundle.require
- 6. Come sviluppare gemme?
- 7. Rails + Gemme (in generale): come funzionano le gemme?
- 8. Qual è il modo corretto in cui pubblicare le gemme?
- 9. Come utilizzare le gemme Devise e Doorkeeper?
- 10. Dove bundler memorizza le gemme?
- 11. gemme disimballaggio [Rails 2.3.5]
- 12. Gemme nascoste di Log4Net?
- 13. Qual è la differenza tra GEM_HOME e GEM_PATH?
- 14. incluse le attività di rake nelle gemme
- 15. L'ordine delle gemme nel tuo Gemfile fa la differenza?
- 16. gemme Rails Bundler installare
- 17. Dove sono le mie gemme di rubino?
- 18. Rubino gemme installazione errore
- 19. Un modo corretto per testare le gemme
- 20. Rubino Gemme Non Installazione, si blocca mentre ottenere gemme
- 21. installazione gemme utilizzando rvm
- 22. Prevenire le gemme spinte su RubyGems
- 23. ice_cube e ricorrenti gemme e occorrenze
- 24. Qual è la differenza tra .ToString() e + ""
- 25. Disinstallare tutte le gemme del rubino 2.0.0
- 26. Qual è la differenza tra dict() e {}?
- 27. Devo disinstallare manualmente tutte le gemme dipendenti?
- 28. JRuby può utilizzare gemme originali Ruby?
- 29. Come controllare le gemme pronte per l'aggiornamento?
- 30. Qual è la differenza tra le annotazioni @CascadeOnDelete e CascadeType.REMOVE?
Grazie! Chiarifica molte cose. Ho giocato con i compiti. Tuttavia mi sembra di essere strano per gestire le rotaie gemme e le altre gemme in modo diverso. In un certo senso sia 3rd party e le rotaie gemme sono solo gemme. Penso che Bundler lo gestisca allo stesso modo senza alcuna distinzione. – fifigyuri