2012-08-30 2 views
6

Je veux exécuter une application Catalyst sur mon serveur web, qui a le système perl v5.10. Je veux utiliser au moins v5.12 pour l'application., Et je ne veux pas me mêler du système perl.Quelle est la méthode recommandée pour utiliser un Perl non-système pour une application Web?

Notre système insiste pour que l'application. Je sais que je peux utiliser Perlbrew pour utiliser Perl non-système pour le développement, mais je ne suis pas sûr de la meilleure façon de lancer la version live. est. Comment les gens conseillent-ils de gérer cette situation?

Répondre

4

Donner nobody (c'est-à-dire, tout le monde) (lire) et exécuter les permissions sur le (s) exécutable (s) perl et toutes les bibliothèques (tout sous les répertoires @INC).

Modifier la ligne shebang dans tous vos scripts d'applications (y compris au moins tout sous votre répertoire ./scripts) à l'instance de perl que vous souhaitez utiliser. Ou si vous voulez faire preuve de souplesse, pointez la ligne shebang vers un lien symbolique qui pointe vers un exécutable perl désiré. Assurez-vous que ce lien est également accessible au nobody.

Redémarrez votre application chaque fois que vous pointez votre lien symbolique vers une version différente de Perl.

6

Puisque vous êtes familier avec perlbrew, vous pouvez toujours l'utiliser pour installer Perl.

perlbrew install 5.16.1 --as=5.16.1t -Dusethreads 

Assurez-vous simplement de donner les permissions appropriées. Supposons que votre $PERLBREW_ROOT est /home/djh/perl5/perlbrew (la valeur par défaut):

chmod a+x /home/djh/ 
chmod a+x /home/djh/perl5/ 
chmod a+x /home/djh/perl5/perlbrew/ 
chmod a+x /home/djh/perl5/perlbrew/perls/ 
chmod -R a+rX /home/djh/perl5/perlbrew/perls/5.16.1t/ # Capital "X"!!! 

Ensuite, utilisez la ligne suivante tralala dans votre script:

#!/home/djh/perl5/perlbrew/perls/5.16.1t/bin/perl 

Mais peut-être que vous ne voulez pas dans votre maison. Si oui, voici ce que vous pouvez faire:

cd /tmp 
wget http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/perl-5.16.1.tar.bz2 
tar xvjf perl-5.16.1.tar.bz2 
cd perl-5.16.1 
sh Configure -des -Dprefix=/opt/perls/5.16.1t -Dusethreads 
make test 

sudo mkdir /opt/perls/5.16.1t 
sudo chown djh:djh /opt/perls/5.16.1t 
make install 

Le programme d'installation va configurer les permissions correctement. Tout ce que vous devez faire est de définir le tralala à

#!/opt/perls/5.16.1t/bin/perl 

("t" est ma convention pour taraudée builds. Retirez -Dusethreads si vous ne voulez pas du support de fil.)

+0

@djh, Ajouté à ma réponse. – ikegami

Questions connexes