Il primo post di questo blog riguarda il blog stesso. Il blog è realizzato con Jekyll, un generatore di siti statici scritto in ruby.

Il problema

Installare Jekyll è facile: prima installi ruby, poi installi la gemma Jekyll e poi via, scrivi post e generi siti. Piece of cake. Ci sono volute un paio d’ore la prima volta… su Ubuntu ci son stati problemi coi pacchetti (e.g. la versione di default è ruby 1.9, noi volevamo la 2.2), poi coi permessi. Così, una volta replicata l’installazione in pochi minuti e con più calma, mi son messo a cercare se non esistesse un modo per far coesistere entrambe le versioni di ruby e magari senza necessità di fornire diritti di amministratore. Qui entra in gioco RVM.

RVM

RVM sta per Ruby Version Manager ed è appunto un gestore di versioni di ruby. Alla fin fine non è altro che uno script bash al quale l’utente può chiedere di scaricare, compilare e installare una versione qualsiasi di ruby; tutto ciò in locale (sotto ~/.rvm, per intenderci) e senza mai richiedere password di root. Così come l’eseguibile di ruby, anche le gemme vengono installate in locale, e quindi anche il nostro jekyll.

Installazione di RVM

Come s’è detto, RVM è uno script bash. L’autore però non pretende che noi lo installiamo “alla cieca”, anzi, come prima cosa suggerisce di guardarci lo script coi nostri occhi e ha pubblicato la sua chiave pubblica in modo da poter mettere una sua firma autentica sullo script che scarichiamo.

  1. Il primo passo è quindi di installare in locale la chiave pgp

    $ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

  2. Il secondo passo è scaricare lo script (ad esempio via curl) e lanciarlo (ad esempio “pipando” l’output di curl in bas)

    $ \curl -sSL https://get.rvm.io | bash -s stable

  3. Ora un passo importante: se lanciassimo ora il comando RVM che ci permette di installare ruby, ad un certo punto ci verrebbe richiesta la password di root. Per evitare di dare la password di root a uno script che non abbiamo letto (anche se l’autore lo consiglia… io non l’ho fatto) possiamo inibire questa risoluzione delle dipendenze “fatta in casa” da rvm

    $ rvm autolibs disable

  4. Finalmente è giunto il momento di installare l’ultima versione di ruby tramite rvm!

    $ rvm install ruby-head

    Questo comando probabilmente ci dirà che manca qualche pacchetto (rvm compila i sorgenti di ruby, quindi ha bisogno di tool di compilazione preinstallati). A questo punto saremo noi in persona a installare le dipendenze segnalate via apt-get install. Tra i pacchetti da installare che forse rvm non vi segnalerà c’è anche ruby: installiamo quindi anche una versione di ruby da repository.

  5. Rilanciando il comando $ rmv install ruby-head finalmente partirà l’installazione dell’ultima versione di ruby. Per usarla sarà necessario lanciare il comando $ rvm use ruby-head per ogni terminale in cui vogliamo usare la versione di ruby appena installata anziché quella globale “da repository”.

È andato tutto bene? Se si vuol sapere quale installazione di ruby stiamo usando si può ricorrere al comando $ which ruby che indica qual è il percorso dell’eseguibile ruby. Se tutto è andato a buon fine assomiglia a qualcosa tipo /home/user/.rvm/rubies/ruby-2.2.1/bin/ruby.