Catalyst embarqué

user_icon admin | icon2 Catalyst | icon4 6/1/2008 17h53| Type doc: article| Type File: txt| icon3 No Comment

Catalyst Hosting


1. Les modules Perl en local

Avant de commencer nous créerons un utilisateur quelconque, c'est sous ce compte que toute les commandes seront exécutées.

Les modules seront alors installés dans le répertoire ~/perl5 de l'utilisateur en question:

mkdir ~/perl5

Ce sera donc notre base d'installation. Pour en tenir compte modifions la variable d'environnement PERL5LIB :


export PATH=$HOME/perl5/bin:$HOME/perl5/script:$PATH
perlversion=`perl -v | grep 'built for' | awk '{print $4}' | sed -e 's/v//;'`
export PERL5LIB=$HOME/perl5/share/perl/$perlversion:$HOME/perl5/lib/perl/$perlversion:$HOME/perl5/lib:$PERL5LIB

les versions de Perl 5.8 et 5.8.8 sont bien sûr à adapter avec la version de Perl installé sur la machine.


mkdir -p .cpan/CPAN
cd .cpan/CPAN
wget http://dab.free.fr/files/articles/perl/MyConfig.pm

Dans le fichier MyConfig.pm remplacer HOMEDIRFIX par le répertoire personnel de l'utilisateur.

On peut tester que l'installation s'est correctement déroulée en installant et chargeant un module quelconque.

perl -MCPAN -e "install Astro::WaveBand"
perl -MAstro::WaveBand -e 1

2. Utilisation de local::lib

Le module Perl local::lib va nous permettre d'installer les modules nécessaire au fonctionnement de Catalyst en local.

Avant tout chose nous devons installer les package suivants:


apt-get install libmodule-build-perl  libextutils-autoinstall-perl

wget http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.001000.tar.gz
tar xvzf local-lib-1.001000.tar.gz
cd ~/local-lib-1.001000
perl Makefile.PL --bootstrap
make test
make install
cd -

Conservons la configuration que nous avons mis en place.


perl -I$HOME/perl5/lib/perl5 -Mlocal::lib >> ~/.bashrc
source ~/.bashrc

Pour terminer et avant de lancer l'installation de Catalyst dans notre répertoire local, installons encore quelques modules indispensables.

perl -MCPAN -e 'install(LWP)'
perl -MCPAN -e 'install Digest::SHA'
perl -MCPAN -e 'install(YAML)'
perl -MCPAN -e 'install CPANPLUS'

3. Installation de Catalyst en local

Nous avons maintenant tout ce qu'il nous faut pour installer catalyst en local :)

perl -MCPAN -e 'install Task::Catalyst'

C'est parti pour la construction de Catalyst. De nombreux modules (=~ 150 ) dont il dépend seront installés ... Toujours accepter l'installation des modules dépendants.

...

Testons son fonctionnement :


catalyst.pl monapp
cd monapp
./script/monapp_server.pl

[debug] Debug messages enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader  0.19                                       |
| Catalyst::Plugin::Static::Simple  0.20                                     |
'----------------------------------------------------------------------------'

;)

4. Emballage de l'application Catalyst

Nous avons notre application qui fonctionne mais elle est difficilement déployable au vues du nombre de modules Perl dont elle dépend. Emballons tout cela dans un binaire :)

Perl dispose du module PAR ( Perl Archive ) qui va nous permettre de packager notre application. Installons ce module:

apt-get install libperl-dev
perl -MCPAN -e 'install PAR::Packer'

Maintenant nous demandons à Catalyst de 'parer' notre application. Dans le fichier 'monapp/Makefile.PL' ajoutons ces lignes sous 'catalyst;'

catalyst_par_core();   # Include modules that are also included
                           # in the standard Perl distribution,
                           # this is optional but highly suggested

catalyst_par();        # Generate a PAR as soon as the blib
                       # directory is ready

cd monapp
perl Makefile.PL
make catalyst_par

L'archive monapp.par a été généré. Pour utiliser une archive PAR nous utiliserons le programme 'parl'


parl monapp.par

Usage:
    [parl] monapp[.par] [script] [arguments]

  Examples:
    parl monapp.par monapp_server.pl -r
    myapp monapp_cgi.pl

  Available scripts:
    monapp_cgi.pl
    monapp_create.pl
    monapp_fastcgi.pl
    monapp_server.pl
    monapp_test.pl

Et donc si on lance le serveur intégré :

parl monapp.par  monapp_server.pl
[debug] Debug messages enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader  0.19                                       |
| Catalyst::Plugin::Static::Simple  0.20                                     |
'----------------------------------------------------------------------------'

Maintenant nous allons y intégrer l'interpréteur Perl et créer un binaire :

pp -o monapp monapp.par

file monapp
monapp: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped

./monapp monapp_server.pl

[debug] Debug messages enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader  0.19                                       |
| Catalyst::Plugin::Static::Simple  0.20                                     |
'----------------------------------------------------------------------------'

Voilà notre application packagée est devenue indépendante et peut être déployée sur un autre système :)


Add a comment

Validator_logo
Catapulse v0.06
( 0.092976 s)