Dopo aver scritto la nostra applicazione, dopo averla opportunamente commentata e dopo aver generato la documentazione non ci resta che rendere l'installazione il più agevole possibile per tutti i probabili utenti. Gli strumenti che Ruby mette a disposizione per la gestione dei pacchetti sono essenzialmente due, diversi per consistenza e funzionalità, ovvero il framework RubyGems e la libreria setup. In questo capitolo ci occuperemo di RubyGems mentre nel prossimo daremo uno sguardo al classico setup.rb.
RubyGems è un framework per la gestione automatica dei pacchetti che si occupa di tutti gli aspetti riguardanti la pacchettizzazione: dall'installazione, all'aggiornamento e alla distribuzione. Di seguito vedremo come va utilizzato per installare nuove librerie, e impareremo a creare i pacchetti gem per le nostre applicazioni.
RubyGems non fa parte dei programmi distribuiti direttamente con Ruby ma va installato a parte. I sorgenti sono disponibili sul sito ufficiale http://rubygems.rubyforge.org e va installato con il classico:
$ ruby setup.rb
Cominciamo subito a capire come si utilizza vedendolo all'opera. Eseguiamolo senza nessuna opzione per vedere una schermata di aiuto:
$ gem RubyGems is a sophisticated package manager for Ruby. This is a basic help message containing pointers to more information. Usage: gem -h/--help gem -v/--version gem command [arguments...] [options...] Examples: gem install rake gem list --local gem build package.gemspec gem help install Further help: gem help commands list all 'gem' commands gem help examples show some examples of usage gem help <COMMAND> show help on COMMAND (e.g. 'gem help install') Further information: http://rubygems.rubyforge.org
La lista completa dei comandi è visualizzabile con l'apposita opzione:
$ gem help commands GEM commands are: build Build a gem from a gemspec cert Adjust RubyGems certificate settings check Check installed gems cleanup Cleanup old versions of installed gems in the local repository contents Display the contents of the installed gems dependency Show the dependencies of an installed gem environment Display RubyGems environmental information help Provide help on the 'gem' command install Install a gem into the local repository list Display all gems whose name starts with STRING query Query gem information in local or remote repositories rdoc Generates RDoc for pre-installed gems search Display all gems whose name contains STRING specification Display gem specification (in yaml) uninstall Uninstall a gem from the local repository unpack Unpack an installed gem to the current directory update Update the named gem (or all installed gems) in the local repository For help on a particular command, use 'gem help COMMAND'.