Cos'è rvm?

RVM (Ruby Version Manager)

RVM, acronimo di Ruby Version Manager, è uno strumento a riga di comando utilizzato per gestire più installazioni di Ruby (e i relativi gem) su un singolo sistema. Permette di installare, gestire e lavorare con diverse versioni di Ruby in modo isolato, evitando conflitti tra progetti che richiedono versioni diverse.

Funzionalità principali:

  • Installazione di Ruby: RVM semplifica il download, la compilazione e l'installazione di diverse versioni di Ruby, inclusi MRI (Matz's Ruby Interpreter), JRuby e Rubinius. Può installare versioni specifiche, snapshot o rami di sviluppo.
  • Gestione di Ruby: RVM permette di passare facilmente da una versione di Ruby all'altra. Puoi impostare una versione predefinita di sistema o una versione specifica per ogni progetto.
  • Ambienti di lavoro isolati (Gemsets): RVM introduce il concetto di gemset. Un gemset è un ambiente isolato per le gemme di un progetto. Questo significa che le gemme installate per un progetto non interferiranno con quelle di altri progetti, evitando conflitti di dipendenza.
  • Supporto per file .ruby-version e .ruby-gemset: RVM supporta l'uso dei file .ruby-version e .ruby-gemset nella directory di un progetto. Quando ti sposti nella directory del progetto, RVM automaticamente carica la versione di Ruby e il gemset specificati in questi file.
  • Integrazione con la shell: RVM si integra con la shell (Bash, Zsh, ecc.) per fornire comandi comodi e un'esperienza utente fluida.

Utilizzo di base:

  • Installare RVM: L'installazione di RVM avviene tramite uno script da riga di comando.
  • Installare una versione di Ruby: rvm install <versione_di_ruby> (es. rvm install 3.2.2)
  • Elencare le versioni installate: rvm list
  • Usare una versione di Ruby: rvm use <versione_di_ruby> (es. rvm use 3.2.2)
  • Creare un gemset: rvm gemset create <nome_gemset> (es. rvm gemset create mio_progetto)
  • Usare un gemset: rvm gemset use <nome_gemset> (es. rvm gemset use mio_progetto)
  • Combinare versione di Ruby e gemset: rvm use <versione_di_ruby>@<nome_gemset> (es. rvm use 3.2.2@mio_progetto)
  • Impostare la versione predefinita: rvm --default use <versione_di_ruby> (es. rvm --default use 3.2.2)

Alternative a RVM:

Esistono alternative a RVM, come asdf e rbenv, che offrono funzionalità simili per la gestione delle versioni di Ruby. La scelta tra questi strumenti dipende spesso dalle preferenze personali e dalle esigenze specifiche del progetto.