2010-11-04 29 views
2

J'essaie de compiler une version portable de Perl contenant un module CPAN, en particulier le module YAML. J'ai l'intention de pouvoir copier cette version portable dans mon répertoire personnel sur de nombreuses machines Redhat Linux, de l'ajouter à mon $ PATH et d'utiliser cette version à la place de la version perl par défaut pour exécuter quelques tests.Compilation d'un Perl portable et inclusion d'un module CPAN

J'ai déjà réussi à compiler une version portable de perl et l'ai fait fonctionner sur différentes machines. Cependant, lorsque je compile le module YAML et l'installe, il fonctionne localement mais échoue lorsque je le copie sur d'autres machines.

Voici mon étapes de compilation au niveau local pour le module YAML

perl Makefile.pl 
make test 
make install 

qui installe et travaille également sur place le module YAML localement lorsque j'utilise le module YAML dans un script.

C'est l'erreur une fois que je copie perl à une autre machine et essayer d'utiliser le module YAML ...

Can't locate loadable object for module YAML::XS::LibYAML in @INC 

même si lib/site_perl/5.10.1/x86_64-linux/YAML/libyaml. pm existe dans ma copie locale.

Est ce que j'essaie de faire possible?
Si oui, où vais-je me tromper?

+1

Le message d'erreur ne se plaint pas de YAML :: LibYAML, il se plaint de YAML :: XS :: LibYAML. – Ether

+0

Et pas à propos de YAML :: XS :: LibYAML, mais C en partie - LibYAML.so (ou quelque chose comme ça). –

+0

Je suis sûr que le module YAML-LibYAML contient YAML :: XS. Je pense que vous avez raison Alexandr, en quelque sorte la partie C du module n'est pas portable une fois qu'il est compilé. – Mormanski

Répondre

2

Vous devriez peut-être explorer PAR avec lequel vous pouvez créer une archive de vos dépendances de module et l'expédier à côté de votre application.

+0

Je pense que PAR m'aiderait à réaliser ce que je veux, merci. Cependant, je ne comprends toujours pas pourquoi ma méthode précédente a échoué. – Mormanski

+0

Jira, j'ai enfin pu explorer PAR et c'est effectivement ce dont j'ai besoin. Fonctionne avec brio, merci encore. – Mormanski

+0

heureux d'être utile :) – jira