La maggior parte degli sviluppatori amano trascorrere un po’ di tempo a impostare il loro lavoro di sviluppo. Io non sono diverso, dopo un certo periodo sperimentando in dettaglio…ecco il seguente articolo di come ho configurato il mio ambiente Ruby e Ruby on Rails per Mac OS Mavericks.
C’è sempre stato un criterio coerente del mio ambiente di sviluppo:
- Discreto, file principali non vanno modificanti
- Flessibilità con le versioni di Ruby
- Configurazione minima
- Facile da configurare nuovi progetti ed esistenti
Quindi, se sei uno sviluppatore di Ruby con gli stessi ideali questo ti dovrebbe aiutare a iniziare rapidamente.
Questo articolo presuppone una nuova installazione di Mac OS X Mavericks, ma ho aggiunto appunti per Mountain Lion ed anche quelli bloccati su Lion dovrebbero essere in grado di seguire.
The Essentials
Installazione degli strumenti da riga di comando
L’installazione degli strumenti di riga di comando per Mavericks è cambiata rispetto alle versioni precedenti, ora c’è un unico comando con cui è possibile eseguire ed avviare l’installazione.
[code lang=”bash”]xcode-select –install[/code]
Dovrebbe apparire una finestra pop-up che chiede la password di amministratore per installare, dopo aver cliccato “Installa” basta solo sedersi e aspettare che finisca.
Mountain Lion: Se siete su Mountain Lion (o Lion) è necessario scaricare Strumenti della riga di comando di Apple. Al sito Developer di Apple è richiesto l’accesso con l’ID Apple per accedere alla pagina di download, ma una volta che ci sei cerca “Command Line Tools” per la versione di Mac OS, scarica e installa.
Che dire di Xcode?
È possibile installare Xcode da App Store gratuitamente, ma in realtà non ha bisogno. Trovo che l’applicazione FileMerge sia molto utile poichè permette di confrontare file e cartelle evidenziando le differenze, ma è un file da scaricare di grandi dimensioni, quindi se volete siate disposti ad aspettare un po’. Una volta scaricato, avviate ed installate Xcode.
Installare Homebrew
Anche se non hai mai utilizzato Homebrew prima lo amerai lo stesso. Il “gestore di pacchetti mancante” come si è auto proclamato per OS X ci permette di installare facilmente le cose di cui abbiamo bisogno che Apple non include. L’installazione è semplice, apri il Terminale (Applicazioni »Utility» Terminal) e inserisci questo comando:
[code lang=”bash”]
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
# Aggiunge Homebrews binary path in testa alla variabile $PATH
echo ‘export PATH=/usr/local/bin:$PATH’ >> ~/.bash_profile
source ~/.bash_profile
[/code]
Controlliamo che il nostro ambiente sia ora configurato correttamente per Homebrew.
[code lang=”bash”]brew doctor[/code]
Se ci sono dei problemi il brew doctor
vi darà i dettagli e talvolta anche come risolvere il problema. Probabilmente non siete gli unicic quindi una veloce ricerca su Google vi darà la soluzione. Ora vogliamo aggiornare Homebrew per assicurarci che stiamo usando le ultime “formule”:
[code lang=”bash”]brew update[/code]
Installare Ruby
OS X viene fornito con Ruby pre installato (Mavericks possiede la versione 2.0.0, in precedenza era solo 1.8.7), siccome non vogliamo pasticciare con i file principali andremo a utilizzare il brillante rbenv e ruby-build per gestire ed installare le nostre versioni di Ruby per il nostro ambiente di sviluppo.
Ora siamo in grado di installare entrambi i pacchetti richiesti utilizzando Homebrew, una volta fatto si aggiunge una linea al nostro ~/.bash_profile
e ricarichiamo il nostro profilo terminale.
[code lang=”bash”]
brew install rbenv ruby-build rbenv-gem-rehash rbenv-default-gems
echo ‘eval "$(rbenv init -)"’ >> ~/.bash_profile
echo ‘bundler’ >> "$(brew –prefix rbenv)/default-gems"
source ~/.bash_profile
[/code]
Ora chiudete il terminale e riapritelo di nuovo, questa operazione assicura che tutto sia stato ricaricato nella shell.
Il pacchetto che abbiamo appena installato ci consente di installare diverse versioni di Ruby e specifichiamo quale versione utilizzare in base al progetto e in maniera globale. Questo è molto utile per mantenere un ambiente di sviluppo coerente se avete bisogno di lavorare con una particolare versione di Ruby.
Stiamo per installare l’ultima versione stabile di Ruby (al momento della scrittura) puoi accertartene visitando il sito di Ruby. Per vedere un elenco di tutte le versioni disponibili pronte da installare si può usare il comando rbenv install –list .
[code lang=”bash”]rbenv install 2.1.1[/code]
Adesso possiamo anche impostare questa versione come quella da utilizzare a livello globale in modo che possiamo farne uso nel nostro terminale.
[code lang=”bash”]rbenv global 2.1.1[/code]
Potete verifica altri comandi nel readme di rbenv su Github
Installare Bundler
Bundler gestisce le dipendenze di un’applicazione, come una sorta di lista della spesa di altre librerie l’applicazione abbia bisogno per lavorare. Se sei solo agli inizi con Ruby on Rails presto vedrai quanto sia importante e utile questa gemma.
Di solito si dovrebbe installare questa con gem install bundler
ma nel set precedente, stiamo facendo uso del plugin rbenv-default-gemme plugin per installare automaticamente bundler per noi ogni volta che installiamo una nuova versione di Ruby.
Puoi aggiungere più gemme di default modificando questo file:
[code lang=”bash”]open "$(brew –prefix rbenv)/default-gems"[/code]
Salta generazione rdoc
Se utilizzi Google per reperire la documentazione come faccio potresti considerare il fatto di risparmiare un po ‘di tempo durante l’installazione di gemme saltando documentazione.
[code lang=”bash”]echo ‘gem: –no-rdoc –no-ri’ >> ~/.gemrc[/code]
Questo è tutto, come vedrete dal rbenv install --list
ci sono un sacco di versioni di Ruby disponibili, tra cui JRuby . Sarà necessario reinstallare tutte le gemme per ogni versione in quanto non sono condivise.
Installare Ruby on Rails
Finora avete installato Ruby, se non avete intenzione di lavorare con Rails datti sulla schiena e iniziare a lavorare con Ruby! Se avete intenzione di lavorare con Rails allora hai appena ricevuto un paio di cose da fare.
Installare SQLite3
SQLite è il servizio “leggero” SQL che viene installato di default con Rails per utilizzarlo con nuovi progetti. OS X fornisce già una versione di SQLite3, ma nel nostro interesse dovremo installarlo comunque con Homebrew che imposterà su ‘keg-only’ per non interferire con la versione di sistema se questo è il caso.
L’installazione è semplice con Homebrew: (stai già amando Homebrew!?)
[code lang=”bash”]brew install sqlite3[/code]
Installare Rails
Con Ruby installato e le dipendenze minime pronte ad andare Rails può essere installato come un gemma di Ruby .
[code lang=”bash”]gem install rails[/code]
Se vuoi che Rails sia una Gem di default per il futuro, quando si installa una nuova versione di Ruby è possibile aggiungere al default-gems
file.
Rails ha un certo numero di altre gemme come dipendenze quindi non stupitevi se vedete un sacco di altre gemme installate allo stesso tempo.
Il tuo primo progetto Rails
Pronti a mettere tutto questo a buon uso e avviare il primo progetto? Bene, stiamo per creare un nuovo progetto chiamato helloworld.
[code lang=”bash”]
rails new helloworld
cd helloworld
[/code]
Ora stiamo andando a impostare la versione locale di Ruby per questo progetto per assicurarci che questo rimanga costante, anche se cambiamo la versione globale in seguito. Questo comando scriverà automaticamente .ruby-version nella directory del progetto. Questo file cambia automaticamente la versione di Ruby all’interno di questa cartella e vi mette in guardia se non lo avete installato.
[code lang=”bash”]rbenv local 2.1.1[/code]
Nota: Se le gemme cominciano a causare i problemi si può semplicemente eseguire “gem pristine –all” per ripristinare la loro condizione originaria.
Ora testiamo se la nostra applicazione sta funzionando correttamente:
[code lang=”bash”]rails server[/code]
Questo è tutto ciò che serve per la maggior parte delle applicazioni Ruby on Rails. Abbiamo soddisfatto anche abbastanza bene tutti i requisiti descritti all’inizio di questo articolo.
Un’alternativa a rbenv è rvm l’idea dietro a entrambi è la stessa, ma trovo che lavorare con rbenv sia più comodo, ma forse perché non ho trascorso molto tempo con rvm.
Se state appena iniziando questa avventura non preoccupatevi ci sono ancora un sacco di cose da apprendere.