Table des matières
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:$PERL5LIBles 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
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'
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 | '----------------------------------------------------------------------------'
;)
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.plEt 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 :)


