Sto cercando un approccio più snello e robusto per mantenere intatto il mio ambiente rvm dopo un aggiornamento del sistema operativo. Sto usando Mountain Lion, rvm 1.18.16 e homebrew, che ha readline, gettext, libxml2, libxslt, qt, gtk + - le gemme che di solito rompono per me sono nokogiri e capybara-webkitIl modo migliore per aggiornare tutti i rubini e le gemme RVM dopo l'aggiornamento del sistema?
Due volte ora dopo l'aggiornamento Mountain Lion e XCode, le mie gemme di estensione nativa e Ruby hanno subito una rottura e devo passare del tempo a far funzionare di nuovo tutto. Devo chiedermi se sto seguendo le migliori pratiche per ottenere tutti i componenti rvm aggiornati dopo tale aggiornamento di sistema.
Ciò che accade di solito è che le gemme con estensioni native si collegano alle vecchie librerie che non sono più disponibili, specialmente con i problemi di libxml che circondano Mountain Lion. Ecco i passaggi fondamentali che faccio per riportare il mio sistema online su tutti i progetti (ho circa 8 versioni di Ruby installate sotto rvm, quindi è noioso!).
Innanzitutto, aggiornare Mountain Lion e XCode tramite l'App Store.
In secondo luogo, Aggiornamento homebrew con:
brew update
brew upgrade
quindi elencare i tuoi rubini e iniziare la ricompilazione ognuna con ...
rvm list
rvm reinstall ruby-1.9.2-p290
rvm reinstall ruby-1.9.3-p392
...
NOTA: ho provato:
rvm all do reinstall
ma questo mi ha dato questo errore: "reinstallare: comando non trovato"
Next up, passo attraverso ogni rubino ed eseguire incontaminata delle gemme (questo ha effetto collaterale di ricompilazione tutte le gemme estensione nativa):
rvm use ruby-1.9.3-p392
gem pristine --all
Infine, vai a ciascun progetto ed eseguire il seguente:
bundle install
Non sono sicuro che l'ultimo passaggio sia strettamente necessario - alcuni progetti sembravano essere ok, altri no, ma l'esecuzione di questo sembrava chiarire gli ultimi problemi rimasti.
Sicuramente c'è un modo più semplice per gestire questo processo !? Ho usato solo Mountain Lion e RVM per un paio di mesi, ma in quel momento, due aggiornamenti di sistema hanno ucciso la maggior parte del mio ambiente di lavoro in Ruby. Ho un sacco di versioni di Ruby installate a causa del mio lavoro come consulente e ho incontrato molti ambienti di sviluppo, quindi mi piacerebbe davvero riportarlo a un processo facilmente ripetibile.
Qualche idea? Quanto sopra può essere ulteriormente migliorato?
Da mpapis su IRC#rvm: Se non si utilizzano le opzioni di comando --path o --deployment con bundle, quindi rvm reinstall all risolverà anche i problemi relativi alle gemme in bundle di ciascun progetto. –