2012-06-17 4 views
2

Je développe un outil simple qui sera utilisé sur différentes plates-formes (principalement Solaris, Linux et HP-UX). L'outil s'appuie sur le module Proc::ProcessTable mais je voudrais éviter d'avoir à construire/installer le module sur tous les systèmes sur lesquels il sera utilisé. Au contraire, je voudrais "incorporer" le code Proc :: ProcessTable dans mon outil. Le résultat que je recherche est d'avoir un seul fichier qui fonctionnera dans tous les systèmes, sans avoir à installer le module séparément.Intégration d'un module dans un programme Perl

Est-ce possible? L'incorporation d'un module Perl seulement serait triviale, mais ce module compile un certain code C spécifique au système d'exploitation. En supposant que je puisse compiler ce code sur chacun des OS dont j'ai besoin, comment pourrais-je inclure ce code C pré-compilé dans mon script Perl afin de faire fonctionner le module embarqué?

+0

Eh bien, d'une manière ou d'une autre, votre outil devra savoir où se trouve le module. Ainsi, vous pouvez soit installer le module normalement, soit ajouter le chemin du fichier de module à '@ INC '. –

+0

Oui, c'est une question piège. – emx

+0

Peut-être que le prochain [[Remote :: Object]] (http://www.youtube.com/watch?v=Qze6a7gydeg&list=PLE3F888A650339DDF&index=46&feature=plpp_video) aiderait :-) –

Répondre

1

Je voudrais éviter d'avoir à construire/installer le module dans tous les systèmes, il sera utilisé sur

Mettre en place un système de construction local/ferme, et produce packages (par exemple RPM) pour la systèmes d'exploitation cibles. Une condition préalable est que vous turn your tool into a CPAN-ready distribution et mark Proc::ProcessTable as a run-time dependency.

+0

Merci d'avoir décrit si clairement les étapes à suivre. Cela me pointe définitivement dans la bonne direction, une réponse très utile. Et cet événement [YAPC] (http://act.yapc.eu/ye2012/) semble être très amusant. – emx

Questions connexes