IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

Module::Install pour packager sa distrib


Sujet :

Modules Perl

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut Module::Install pour packager sa distrib
    Esque l'un de vous aurait une experience avec Module::Install ?
    Il y a certains trucs qui m'echappent: en gros il s'adresse aux personnes voulant packager leur distrib pour par exemple la mettre sur CPAN. Son principe est d'inclure une partie de ses propres lib dans la distrib (dans inc/), et de consitituer META.yml et tout le reste.
    donc à priori la seule chose à faire est d'ecrire un Makefile.PL (en s'inspirant le synopsis de module) et de le lancer pour qu'il genre tout ca.

    Mais je trouve tout de meme la demarche assez etrange: en lancant ce Makefile.PL il va aussi constitier (et c'est normal) le fichier Makefile. Ce que je trouve bizarre comme demarche c'est de devoir lancer le makefile.pl dans un but de constitution de la distrib et non d'installation.
    Donc en gros, à moins que je ne me gourre (et c'est la question de ce post), la demarche normale est de lancer ce makefile.pl puis d'effacer le fichier makefile généré. Je ne trouve pas ca tres naturel...
    Donc y a t-il à votre connaissance une meilleure demarche pour utiliser ce module?
    Tiens d'ailleurs il ne m'a pas généré de MANIFEST...

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Je ne comprend pas très bien ? Il génère un Makefile (ou un script Build) que tu dois lancer pour faire les compilations, il ne fait pas les compilations lui-même, ni les test, ni l'installation. En fait c'est une couche supplémentaire pour faciliter l'usage MakeMaker et Build en rassemblant des fonctionnalités communes et souvent buguées dans les vieilles versions (problème que n'a pas Module::Install puisqu'il est contenu dans la distribution) et en permettant également de différencier les choses dont on a besoin pendant le build uniquement des choses qui doivent être présentes sur le système pour que le module fonctionne (ce que Build et MakeMaker ne sont pas très bon à faire), par exemple pour faciliter l'installation de modules utilisant Inline (ou Module::Compile) sans avoir à installer Inline sur son système.
    Mais MakeMaker et Build restent les outils de choix pour effectuer les compilations nécessaires, et l'installation proprement dite du script. L'avantage c'est aussi que les utilisateurs de MakeMaker et Build peuvent facilement migrer à Module::Install sans avoir à réécrire leurs script d'installation dans un nouveau système, juste les adapter et les simplifier un peu.

    Le but ultime c'est bien sûr d'étendre le système actuel de sorte qu'il permette de faire tout ce que font MakeMaker et Build, mais beaucoup plus simplement, et plus robuste, et plus !!

    --
    Jedaï

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut
    Ce que je veux ca n'est pas installer un module packagé avec Module::Install, ni installer Module::Install lui meme. Ce que je veux c'est utiliser Module::Install pour consituer une distribution pour un module que je veux mettre sur CPAN.

    et, d'apres ce que j'ai compris, la demarche pour faire ca est la suivante:

    - tu met ta distrib avec ses modules et tests dans un rep (comme d'hab)
    - ensuite tu y crait un makefile.PL avec les commandes de Module::Install (comme celui du synopsis), en lui indiquant des dependances et autres details
    - tu le lance toi meme, un peu comme si tu voulais installer ta propre distrib
    - il crait un repertoir inc/ dans lequel il copie ce qu'il faut de ses propres modules pour l'installation future (pour que le client n'ait pas à installer Module::Install)
    - il crait un META.yml avec les infos du makefile.PL ou des infos detectée automatiquement
    - il ne crait pas de MANIFEST (pourkoi, je ne sais pas)
    - il crait un fichier Makefile (qui ne sert à rien ici, pusique je ne vais pas l'inclure dans la distrib)

    en gros ce qui me chargrine, et me fait penser que je dois pas bien faire les choses, ce sont les deux derniers points

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Ah oui, je n'avais pas bien compris la question. Alors le Makefile sert à quelque chose : d'une part tu peux vérifier si tout marche bien (faire les tests, la compilation, etc...), d'autre part tu peux supprimer ce que t'as rajouté le Makefile.PL (et tes éventuels tests) en faisant "make realclean", mais je suis d'accord, c'est un peu perturbant et pas forcément réellement judicieux...
    NB : le Makefile.PL détermine si tu es l'auteur de la distribution par l'absence du fichier inc/.author . L'avantage aussi de garder le "générateur" de la distribution avec la distribution c'est que l'utilisateur peut facilement mettre à jour l'installateur si celui-ci a un problème sur son système (ce que j'ai récemment été obligé de faire d'ailleurs).

    --
    Jedaï

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut
    argh oui punaise, merci, j'avais pas vu le inc/.author !

    ca aussi c'etait un point qui m'enervait: apres un premier lancement le makefile.pl, une fois que tout etait "en place", un deuxieme lancement produisait la meme sortie (recopie dans le inc/, regenration de meta.yml). en virant le .author je me retouve avec une distrib prete à etre installée.
    Mais tout de meme c'est pas super pratique: lancer le makefile.pl, puis virer le makefile et le .author...
    c'est un peu tordu.
    Surtout qu'il pourrait tout à fait voir que c'est son premier lancement (absence de /inc par exemple) et ne pas generer de makefile... (et sans avoir besoin du .autho nonplus)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut
    et sinon pour le MANIFEST t'as une idée?

  7. #7
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Aucune idée pour l'instant...

    --
    Jedaï

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut
    oui ca semble etre al bonne demarche (le coup du make dist), mais par contre il fait un tar.gz vide vu qu'il ne toruve pas le MANIFEST

  9. #9
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Ok il faut faire un nmake manifest avant. ("perl Makefile.PL", "rm -f MANIFEST" (si tu utilises un truc comme module-starter par exemple), "nmake manfest", "nmake dist"). Et ainsi nul besoin de supprimer à la main le Makefile et le .author.

    --
    Jedaï

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut
    yep c'est ca!
    merci!
    C'est dommage que module-starter ne puisse pas directement gerer Module::Install d'ailleurs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. voir les modules installés pour python?
    Par ELODIE2 dans le forum Déploiement/Installation
    Réponses: 6
    Dernier message: 27/08/2014, 19h35
  2. [REDHAT] Problème pour installer un package
    Par ch3ch3 dans le forum RedHat / CentOS / Fedora
    Réponses: 5
    Dernier message: 18/06/2007, 15h39
  3. Réponses: 1
    Dernier message: 16/09/2006, 19h49
  4. Installation du module DBI pour perl sous W2K
    Par tomcat dans le forum Modules
    Réponses: 6
    Dernier message: 22/01/2004, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo