-+  Associazione
-+  Documenti
-+  Eventi
-+  Community
-+  Blog
-+  Link

Ottobre 2013

Dom Lun Mar Mer Gio Ven Sab
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Cerca






 

« Perl Advent Calendar! | Home | Pizza Perl.it »

Catalyst e Gentoo
01.01.06

Mi sto appassionando sempre di più a Catalyst, e finalmente lo utilizzerò per lavoro almeno in un paio di progetti. Il framework ha tutte le carte in regola per diventare un killer, visto che ormai l'API è abbastanza stabile, i principali bug sono stati limati, ed iniziano ad apparire su CPAN plugin in grande quantità.

Uno dei punti di forza del framework è il fatto che esso si basa fortemente su CPAN: installare Catalyst vuol dire installare oltre 60 moduli. Questo è ciò che io chiamo "riutilizzare il codice".

Uno dei punti di debolezza del framework è il fatto che esso si basa fortemente su CPAN: installare Catalyst vuol dire installare oltre 60 moduli. Questo è ciò che io chiamo un vero incubo.

E` vero che, servendosi del modulo CPAN, l'operazione può risultare piuttosto semplice, e ridursi ad un:

cpan -i Task::Catalyst

che installa il framework ed i moduli più comuni (tra cui Prototype, Session, DBIx::Class, ...).

Tuttavia molti vorrebbero tenere un po' d'ordine nel proprio sistema, ed utilizzare il proprio package manager di sistema (Apt, Portage, ...) per gestirne installazione ed aggiornamento. Inoltre, dal punto di vista di chi deve provare Catalyst per la prima volta, sapere che può installarlo direttamente col suo package manager di sistema potrebbe essere un fattore che determina se lo proverà oppure volgerà prima lo sguardo verso altre soluzioni come Ruby-On-Rails.

Ho effettuato alcune prove con Gentoo, la distribuzione che utilizzo, ed in effetti la situazione non è granché rosea. Esiste il programma g-cpan che automatizza la pacchettizzazione e l'installazione dei moduli CPAN non presenti in Portage (e nessuno di quelli relativi a Catalyst lo è). Il software non è tuttavia esente da problemi - in particolare se viene utilizzato CPANPLUS - ed un semplice:

g-cpan -i Task::Catalyst

generalmente non funziona. Un'installazione più "all'osso" con:

g-cpan -i Catalyst

di solito va a buon fine, anche se non sempre in maniera propriamente liscia. A volte alcune delle dipendenze vengono installate da CPAN senza venire "pacchettizzate", e l'upgrade tende a dare errori.

La via da percorrere per fornire un'installazione facile, sicura, e facilmente aggiornabile, è quella di creare gli ebuild sotto dev-perl per tutti i moduli CPAN richiesti. Mi sono cimentato, e sono persino a buon punto, anche se mi sto scontrando con vari inconvenienti relativi agli ebuild già presenti nel repository ufficiale Gentoo: dipendenze sbagliate, pacchetti marcati solo x86 e non amd64/altre_architetture, versioni vecchie.

Segnalando i problemi su bugs.gentoo.org dovrei venire a capo della situazione in tempi relativamente brevi. Tuttavia, anche a quel punto,un eventuale utente dovrà scaricarsi i miei ebuild, copiarli nella sua directory di overlay, ed effettuare l'installazione. Ci sarà da lavorare con la Perl Herd di Gentoo per tentare di inserire tutto nel repository ufficiale, e prima che 60 moduli possano venir dichiarati stabili ne passerà di acqua sotto i ponti.

In conclusione, il sentiero sembra percorribile, ma l'impressione è quella che siamo ancora piuttosto lontani dal momento in cui qualsiasi utilizzatore Gentoo potrà scrivere:

emerge catalystframework

e ritorvarsi un'installazione di Catalyst completa e funzionante, esattamente come può fare ora con:

emerge rails

per ottenere Ruby-On-Rails. In realtà l'utente deve comunque smanettare 2 con il file package.keywords in quando al momento rails ancora è ~arch e quindi non ancora dichiarato stabile; ma un conto è aggiungere una riga in package.keywords, un altro sarà aggiungerne 60 se e quando i moduli di Catalyst raggiungeranno il repository ufficiale Gentoo.

Beh, c'è anche la parte buona: in tutto questo tempo Catalyst avrà il tempo di maturare. ;-)

Inviato da arthas il 01.01.06 23:25
Ti è piaciuto questo articolo? Iscriviti al feed!

Inviato da arthas il 02.01.06 11:50

Ciao!

Mi ero dimenticato (l'1 Gennaio c'era ancora un po' di stanchezza ;-)) di citare il progetto CatInABox:

http://use.perl.org/~jk2addict/journal/

Si tratta di una tarball che integra Catalyst e tutti i moduli che servono.

Benché questa soluzione possa in effetti essere utile per chi desidera provare Catalyst, i moduli non vengono installati system-wide, e non sono quindi condivisibili tra più installazioni di Catalyst. Dunque, mi sembra difficile considerarla una soluzione definitiva, anche se integrarla con un package manager di una distribuzione Linux mi pare piuttosto semplice.

Michele.

Inviato da alessio il 02.01.06 12:10

www.vitaminic.it è in sviluppo (siamo verso la fine) ed è stato fatto in Catalyst, su una piattaforma simil-Red Hat Linux. Quindi tutti i moduli Catalyst e tutte le dipendenze sono state installate come RPM, utilizzando l'ottimo cpan2rpm quando i package non erano disponibili in repository come dries o dag. Certo, è servito un po' di tempo...

Inviato da arthas il 02.01.06 20:06

Ciao Alessio!

In effetti il problema è proprio il "è servito un po' di tempo". Anche sotto Gentoo riesco più o meno a combinare (benché cpan2rpm sia probabilmente un gradino sopra g-cpan al momento), solo che mi piacerebbe che l'installazione fosse una cosa "1-click". Non tanto per me, quanto per agevolare la diffusione di Catalyst.

Comunque, sono felice di sapere che il nuovo Vitaminic utilizza Catalyst!

Michele.

Inviato da davidebe il 02.01.06 22:57

Infatti e' molto meglio il Vitaminic vecchio.
Ci vorra' tempo perche' lo si usera' bene
e dettagliatamente.
davidebe.

Inviato da arthas il 03.01.06 11:16

Concordo per ora, ma ricorda che alessio ha detto che ci stanno ancora lavorando.
Sarà un ottima cosa avere un Vitaminic fatto con Catalyst, mi agevolerà l'opera di convinzione presso i miei collaboratori al fine di adottarlo per quando dovremo sviluppare. ;-)
Michele.

Inviato da alessio il 03.01.06 14:48

Beh, distinguiamo il progetto dall'implementazione: immagino non dover spiegare che le scelte di fondo (più o meno discutibili) sono state fatte dal management e sono indipendenti dalla tecnologia usata. Io posso solo commentare che Catalyst sta aiutando ad andare nella direzione desiderata (con alti e bassi, spero di avere maggior tempo poi per commentare), ma questo è indipendente da quello che si vuole fargli fare.

Inviato da arthas il 05.01.06 01:51

Bene, sono giunto alla preparazione di alcune ebuild sperimentali che permettono di installare Catalyst ed i moduli "imperdibili" in scioltezza sotto Gentoo:

http://forums.gentoo.org/viewtopic-t-419501.html

Spero possa servire a qualcuno.

Michele.










Devo ricordare i dati personali?






D:
Sull'autore...
D:
La ML di Perl.it
Iscriviti! mongers@lists.perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
D:
Annunci Google