Gems:install, unpack e freeze

Se in evironment.rb configuro le gemme necessarie all’applicazione e
poi lancio gems:install le gemme vengono installate nel sistema come
se lanciassi direttamente il comando gem install…
Se successivamente lancio gems:unpack le gemme vengono installate
sotto /vendor/gems e se poi lancio rails:freeze:gems mi viene
installato rails sempre sotto /vendor.
A questo punto mi chiedo: se porto l’applicazione sul server di
produzione, avendo gia’ tutte le gemme necessarie sotto /vendor, non
c’e’ bisogno che installi le gemme, rails compreso nel sistema,
poiche’ gia’ l’applicazione le porta con se.
Sbaglio?

Esatto

2009/7/9 Luca G. [email protected]:

Esatto

accidenti a saperlo prima :slight_smile:
adesso risistemo il server eliminando tutte le gemme e lasciando solo
l’interprete ruby (che su linux debian lenny purtroppo e’ ancora la
1.8).

rake gems:unpack provvede a scompattare le tue gems nella tua
applicazione,
però fai attenzione, se delle gemme hanno delle estensioni native (e non è
raro), devi anche eseguire “gems:build”.
Questi Rake tasks si occupano di tutte le gemme tranne che di Rails e
delle
sue dipendenze, quindi scegli l’opzione più adatta a te tra i task appositi.
rake -T rails, per ottenere una lista completa.

Luca

2009/7/9 Luca G. [email protected]:

rake gems:unpack provvede a scompattare le tue gems nella tua applicazione,
però fai attenzione, se delle gemme hanno delle estensioni native (e non è
raro), devi anche eseguire “gems:build”.

Immagino che se tentassi di fare un gems:unpack di gemme che hanno
necessita’ di estensioni native verrei avvertito da qualche messaggio.

Questi Rake tasks si occupano di tutte le gemme tranne che di Rails e delle
sue dipendenze, quindi scegli l’opzione più adatta a te tra i task appositi.
rake -T rails, per ottenere una lista completa.

Si certo, rails deve essere presente a livello di sistema,
rails:freeze:gems fa un freeze della versione corrente di rails nella
mia applicazione.
Quello che volevo capire e’ che se, dopo aver installato le gemme
sotto /vendor, fatto il freeze di rails e portato l’applicazione nel
server di produzione, e’ necessario installare la gemma rails nel
server di produzione.
Non credo sia necessario visto che, come ho detto prima,
l’applicazione si porta con se tutto il necessario.
Grazie.