[Perl] un truc magique pour Module::Install ?

Olivier Mengué olivier.mengue at gmail.com
Mer 12 Avr 12:25:15 CEST 2017


Le 12 avril 2017 à 08:49, Marc Chantreux <khatar at phear.org> a écrit :

> salut Olivier et grand merci pour ta réponse,
>
> > compatibilité avec l'évolution de l'écosystème CPAN. L'équipe « Perl
> > Toolchain Gang » recommande donc aux auteurs CPAN de ne plus utiliser
> > Module::Install pour leurs distributions.
>
> et quelles sont les recommandations actuelles du PTG? existe-t'il un
> document de synthèse sur le sujet?
>

https://metacpan.org/pod/distribution/Module-Install/lib/Module/Install.pod#WARNING

La recommandation est d'utiliser Makefile.PL et ExtUtils::MakeMaker comme
module d'installation.
Car Module::Install est devenu une plaie (il est peu maintenu, génère des
META.yaml dans un ancien format...) et Module::Build n'a jamais atteint les
fonctionnalités équivalentes à EUMM, tout en étant gros et une charge à
maintenir que plus personne ne veut porter (d'où son retrait de la distrib
Perl).

Mais il vaut mieux éviter d'écrire le Makefile.PL à la main, car l'écrire
en tenant compte de la compatibilité avec d'anciennes versions d'EUMM est à
réserver aux experts masochistes.

Bref, utiliser les outils de packaging tels que Dist::Zilla, Dist::Milla,
Minilla...


>
> > Ce que je recommande pour le développement Perl, c'est de ne pas se baser
> > sur le Perl système. Il vaut mieux utiliser plenv :
> > https://github.com/tokuhirom/plenv/
>
> j'avoue ne pas bien comprendre comment avoir plusieurs perl sur ma
> machine rendre plus simple l'installation de paquets CPAN.
>

Dans un shell donné tu n'utilise qu'un seul perl à un instant donné. Donc
ce n'est pas si compliqué.
De plus ton environnement de développement n'es plus affecté par les
upgrades du perl système qui casse la compatibilité binaire avec les
paquets XS que tu as installés.

Chaque perl est indépendant : son jeu de paquets CPAN est donc lié au perl.
Ils ne se marchent pas sur les pieds et ne marchent pas sur les pieds du
perl du système.
Si tu change de perl dans ton shell (commande "plenv shell"), le jeu de
paquets CPAN change avec.

À noter :
- tous tes scripts non destinés à être dans des paquets CPAN qui doivent
fonctionner quel que soit le perl actif doivent soit utiliser le perl
système (sheebang #!/usr/bin/perl) soit sheebang "#!/usr/bin/env perl"
- les scripts dans des projets destinés à être installés avec Makefile.PL
ou Build.PL doivent référencer /usr/bin/perl dans leur sheebang (pour que
l'installateur reconnaisse le shebang et le remplace à l'installation du
script par le chemin absolu du perl utilisé pour l'installation)
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://listes.mongueurs.net/mailman/private/perl/attachments/20170412/c6106008/attachment.html>


Plus d'informations sur la liste de diffusion Perl