{"id":192,"date":"2009-03-11T12:06:53","date_gmt":"2009-03-11T11:06:53","guid":{"rendered":"http:\/\/www.leonardomiliani.com\/?p=192"},"modified":"2009-03-12T11:27:15","modified_gmt":"2009-03-12T10:27:15","slug":"configurare-un-ambiente-di-sviluppo-completo-per-ruby","status":"publish","type":"post","link":"https:\/\/leonardomiliani.com\/?p=192","title":{"rendered":"Configurare un ambiente di sviluppo completo per Ruby"},"content":{"rendered":"<p>Il Python \u00e8 diffusissimo \u00e8 documentatissimo, e chi si avvicina a questo linguaggio trova in rete tutte le guide ed i consigli che gli servono. Ci\u00f2 non si pu\u00f2 dire per il <strong>Ruby<\/strong>, linguaggio molto bello e potente che, per\u00f2, gode nel mondo occidentale di una diffusione pi\u00f9 limitata (pensate che in Giappone, patria del suo creatore, \u00e8 pi\u00f9 diffuso del Python).<\/p>\n<p>E siccome a me personalmente le cose &#8220;di nicchia&#8221; piacciono sempre pi\u00f9 delle cose di moda, ho perso un paio di giorni in rete cercando di documentarmi su come poter approntare un ambiente di sviluppo completo per Ruby in modo da poter offrire a chi si avvicina a questo linguaggio la lista di ci\u00f2 che serve per essere operativi in brevissimo tempo.<\/p>\n<p><!--more--><\/p>\n<ul>\n<li><em>Premessa: i passaggi che leggerete qui sotto sono principalmente per il sistema operativo GNU\/Linux, nella fattispecie Ubuntu Intrepid Ibex 8.10&#8230;. ma, con piccole modifiche, possono essere adattati anche ad altre distribuzioni e\/o sistemi operativi.<\/em><\/li>\n<\/ul>\n<p>Cominciamo con l&#8217;interprete ed alcuni programmi accessori. <strong>Ruby<\/strong> inteso come interprete del linguaggio in genere \u00e8 gi\u00e0 presente in qualunque distribuzione Linux, Ubuntu compreso, ma se cos\u00ec non fosse, utilizzate il vostro gestore di pacchetti per installarlo. Controllate inoltre di aver installati anche i seguenti pacchetti, che vi serviranno nel proseguo del vostro lavoro con Ruby:<br \/>\n<code>sudo apt-get install rdoc1.8 ri1.8 irb1.8 ruby1.8-dev rubygems<\/code><\/p>\n<p>Per controllare che l&#8217;installazione sia a posto basta dare da terminale il comando <code>ruby -v<\/code>. Se tutto \u00e8 a posto, l&#8217;interprete risponder\u00e0 con la versione installata, come nell&#8217;esempio qui sotto:<br \/>\n<code>ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]<\/code><\/p>\n<p>Adesso passiamo all&#8217;editor. Ne esistono a bizzeffe, a partire dai classimi emacs e vi. Ma io sono un tipo smemorato che non si ricorda mai la sintassi dei comandi per cui ho bisogno di un editor robusto con un buon auto-completamento del codice e voglio anche un editor &#8220;completo&#8221; e grafico. La mia scelta \u00e8 perci\u00f2 ricaduta su <strong>NetBeans 6.5<\/strong>, che offre un buon supporto a Ruby. Per scaricarlo andate sulla <a href=\"http:\/\/bits.netbeans.org\/netbeans\/6.5\/community\/latest\/ml\/\" target=\"_blank\">pagina multilingua di download<\/a> e selezionate la versione con supporto per Ruby (\u00e8 il 3\u00b0 download, quello di 57 MB). Perch\u00e9 non affidarsi al pacchetto precompilato della propria distribuzione? Perch\u00e9 in Ubuntu \u00e8 presente NetBeans 6.1 mentre io volevo non solo l&#8217;ultima versione ma anche quella con gi\u00e0 il plugin per gestire Ruby.<\/p>\n<p>Scaricato il file, eseguitelo da terminale con qualcosa di simile a questo (il comando pu\u00f2 variare a seconda della versione):<\/p>\n<dl id=\"attachment_200\" class=\"wp-caption aligncenter\" style=\"width: 663px;\">\n<dt class=\"wp-caption-dt\"><\/dt>\n<\/dl>\n<p><code>sh .\/netbeans-6.5-ml-ruby-linux.sh<\/code><\/p>\n<p>Partir\u00e0 l&#8217;installazione grafica che far\u00e0 il resto. Durante il processo vi verr\u00e0 chiesto se volete installare anche il web server GlassFish 3 Prelude: se avete intenzione di sviluppare applicazioni Ruby on Rails, fatelo, altrimenti potete risparmiare qualche decina di MB di spazio sul vostro disco.<\/p>\n<p>Terminata l&#8217;installazione, troverete un&#8217;icona sulla scrivania del PC. Cliccateci per avviare NetBeans ed iniziate pure a scrivere le vostre prime righe di codice Ruby:<\/p>\n<div id=\"attachment_200\" style=\"width: 663px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-200\" class=\"size-full wp-image-200\" title=\"Editing di codice Ruby con NetBeans\" src=\"http:\/\/www.leonardomiliani.com\/wp-content\/uploads\/2009\/03\/netbeans.jpg\" alt=\"Editing di codice Ruby con NetBeans\" width=\"653\" height=\"428\" srcset=\"https:\/\/leonardomiliani.com\/wp-content\/uploads\/2009\/03\/netbeans.jpg 653w, https:\/\/leonardomiliani.com\/wp-content\/uploads\/2009\/03\/netbeans-300x196.jpg 300w\" sizes=\"auto, (max-width: 653px) 100vw, 653px\" \/><p id=\"caption-attachment-200\" class=\"wp-caption-text\">Editing di codice Ruby con NetBeans<\/p><\/div>\n<p>Adesso un paio di &#8220;hack&#8221;. Di per s\u00e9 NetBeans offre una versione preinstallata dell&#8217;interprete Ruby, JRuby (una versione per Java del linguaggio), comprese le sue proprie gemme. Ricordatevi di impostare tra le varie preferenze del programma l&#8217;uso dell&#8217;interprete installato sul computer. Inoltre, a causa delle impostazioni di Ubuntu, in cui l&#8217;utente <em>root<\/em> \u00e8 disattivato ed al suo posto le operazioni di amministratore vengono svolte dall&#8217;utente normale mediante autenticazione con <em>sudo<\/em>, NetBeans non \u00e8 in grado di installare nuove gemme sul sistema in uso. Questo perch\u00e9 lui chiede la password vera di root ma su Ubuntu, come detto, root \u00e8 disabilitato di default. Le soluzioni sono 2: o si abilita tale utente (scelta sconsigliata) o bisogna dare il permesso di accesso alla cartella dove sono contenute le gemme anche al proprio utente (scelta consigliata). Per far ci\u00f2, basta dare i seguenti comandi:<br \/>\n<code>cd \/var\/lib\/gems<br \/>\nsudo chown -fR <em>nome_utente<\/em> .<\/code><\/p>\n<p>(Non scordatevi il punto!)<\/p>\n<p>Adesso dobbiamo pensare alla parte grafica. Un&#8217;applicazione moderna non pu\u00f2 non avere una GUI con cui l&#8217;utente pu\u00f2 interagire con il mouse. Tra le tante offerte disponibili (Fox, Tk, wxWidgets, GTK, Qt, ecc&#8230;) ho deciso di scegliere le wxWidgets, diffuse, moderne, documentate, libere, multipiattaforma. Esiste un binding apposito per Ruby che si chiama <strong>wxRuby<\/strong>: \u00e8 molto documentato e si installa come una semplice &#8220;gemma&#8221; (chi non sa cosa sia una gemma, pensi ad essa come ad un pacchetto autoinstallante di un programma Ruby). Prima per\u00f2 dobbiamo accertarci che le librerie siano presenti sul nostro sistema:<br \/>\n<code>sudo apt-get install libwxbase2.8-0 wx2.8-headers<\/code><\/p>\n<p>Fatto questo, installiamo wxRuby. Lo possiamo fare sia da terminale con<br \/>\n<code>sudo gem install wxruby<\/code><\/p>\n<p>sia tramite NetBeans (adesso funziona) andando in Strumenti\/Ruby Gems. Scegliete il modo che pi\u00f9 vi piace. Insieme a wxRuby installate anche la gemma <strong>wxSugar<\/strong>: servir\u00e0 in seguito.<\/p>\n<p>Fatto questo dobbiamo pensare al disegnatore di interfacce. Ho scelto <strong><a href=\"http:\/\/wxformbuilder.org\/\" target=\"_blank\">wxFormBuilder<\/a><\/strong> perch\u00e9 \u00e8 semplice, lavora con le wxWidgets, \u00e8 multipiattaforma ed offre un <a href=\"https:\/\/launchpad.net\/~rjmyst3\/+archive\/ppa\" target=\"_blank\">repository per Ubuntu<\/a> (ricordatevi di scaricare ed installare prima la chiave di autenticazione e poi di scegliere correttamente la versione della vostra distribuzione). Aggiunto il repository e riletta la lista dei pacchetti, installate wxFormBuilder con<br \/>\n<code>sudo apt-get install wxformbuilder<\/code><br \/>\nUna volta installato, questo \u00e8 disponibile in Applicazioni\/Programmazione:<\/p>\n<p style=\"text-align: center;\">\n<div id=\"attachment_203\" style=\"width: 589px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-203\" class=\"size-full wp-image-203\" title=\"wxFormBuilder\" src=\"http:\/\/www.leonardomiliani.com\/wp-content\/uploads\/2009\/03\/wxformbuilder.jpg\" alt=\"wxFormBuilder\" width=\"579\" height=\"354\" srcset=\"https:\/\/leonardomiliani.com\/wp-content\/uploads\/2009\/03\/wxformbuilder.jpg 827w, https:\/\/leonardomiliani.com\/wp-content\/uploads\/2009\/03\/wxformbuilder-300x183.jpg 300w\" sizes=\"auto, (max-width: 579px) 100vw, 579px\" \/><p id=\"caption-attachment-203\" class=\"wp-caption-text\">wxFormBuilder<\/p><\/div>\n<p>wxFormBuilder salva le interfacce create in formato C++ oppure XRC. A noi il primo ovviamente non interessa perch\u00e9 stiamo usando Ruby come linguaggio, per cui salvate le interfacce in formato XRC. Quello di cui abbiamo bisogno adesso \u00e8 un convertitore da XRC a Ruby. Il programma che servir\u00e0 a questo scopo \u00e8 <strong>XRCise<\/strong>, che \u00e8 contenuto nella gemma wxSugar che abbiamo installato precedentemente. Per\u00f2 se diamo da terminale il comando xrcise, otterremo solo un messaggio di errore. Perch\u00e9? Perch\u00e9 il file \u00e8 installato in un percorso non standard ed il sistema semplicemente non lo trova. Le soluzioni sono 2: o lo invochiamo sempre con il suo percorso assoluto, che \u00e8<\/p>\n<p><code>\/var\/lib\/gems\/1.8\/bin\/xrcise<\/code><\/p>\n<p>oppure inseriamo la cartella dove risiede nella variabile di sistema che contiene il percorso di ricerca dei comandi. Ovviamente questa seconda soluzione \u00e8 la pi\u00f9 pratica perch\u00e9 evita di digitare continuamente il percorso completo. Apriamo il file ~\/.bashrc o da terminale con un editor di testo oppure anche con GEdit ed aggiungiamo, in fondo al file, le seguenti righe:<br \/>\n<code>PATH=$PATH:\/var\/lib\/gems\/1.8\/bin<br \/>\nexport PATH<\/code><br \/>\nFatto questo, chiudete tutti i terminali aperti e riavviatene uno per verificare che, scrivendo xrcise, il sistema trovi il comando nel percorso indicato.<\/p>\n<p>Adesso siete pronti a programmare in Ruby con un ambiente di sviluppo veramente completo: avrete un ottimo disegnatore di interfacce, un programma per convertire le interfacce in codice Ruby ed un editor potente e completo per scrivere le vostre applicazioni. Buon divertimento!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il Python \u00e8 diffusissimo \u00e8 documentatissimo, e chi si avvicina a questo linguaggio trova in rete tutte le guide ed&#46;&#46;&#46;<\/p>\n","protected":false},"author":193,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,13],"tags":[],"class_list":["post-192","post","type-post","status-publish","format-standard","hentry","category-linux","category-programmazione-computer"],"_links":{"self":[{"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=\/wp\/v2\/posts\/192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=\/wp\/v2\/users\/193"}],"replies":[{"embeddable":true,"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=192"}],"version-history":[{"count":21,"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=\/wp\/v2\/posts\/192\/revisions"}],"predecessor-version":[{"id":211,"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=\/wp\/v2\/posts\/192\/revisions\/211"}],"wp:attachment":[{"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/leonardomiliani.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}