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

C Discussion :

Déploiement d'un programme C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Par défaut Déploiement d'un programme C
    Hello,

    Voilà j'ai un projet C qui se termine et qui pour l'instant n'est déstiné qu'à linux, et nous souhaitons proposer un package à installer facilement et de manière standard.

    Nous avons à la base un makefile fait main, avec l'arborescence suivante:
    project
    ... makefile
    ... src/
    ... headers/
    ... bin/
    ... man/
    ... doc/
    ... data/

    Pour le déploiement, nous avons, pour le moment, opté pour les autotools et les commandes ./configure, make et make install.

    Ca semble plus ou moins fonctionner, mais honnêtement on ne maitrise pas vraiment ces outils et on les trouvent franchement difficile à comprendre et à manipuler.

    J'aimerai donc savoir si vous connaissez d'autres moyens de déployer un package de manière standard? Je connais (de nom) cmake, ou ant, mais quels en sont les avantages? Y'a t-il un standard plus utilisé (et dans l'idéal plus facile à utiliser) que les autres?

    N'hésitez pas a donner vos avis... Ils nous seront précieux.
    Merci d'avance!

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par vinzzzz Voir le message
    Hello,

    Voilà j'ai un projet C qui se termine et qui pour l'instant n'est déstiné qu'à linux, et nous souhaitons proposer un package à installer facilement et de manière standard.

    Nous avons à la base un makefile fait main, avec l'arborescence suivante:
    project
    ... makefile
    ... src/
    ... headers/
    ... bin/
    ... man/
    ... doc/
    ... data/

    Pour le déploiement, nous avons, pour le moment, opté pour les autotools et les commandes ./configure, make et make install.

    Ca semble plus ou moins fonctionner, mais honnêtement on ne maitrise pas vraiment ces outils et on les trouvent franchement difficile à comprendre et à manipuler.

    J'aimerai donc savoir si vous connaissez d'autres moyens de déployer un package de manière standard? Je connais (de nom) cmake, ou ant, mais quels en sont les avantages? Y'a t-il un standard plus utilisé (et dans l'idéal plus facile à utiliser) que les autres?

    N'hésitez pas a donner vos avis... Ils nous seront précieux.
    Merci d'avance!
    ton approche me semble correcte.

    Tu en as 2.

    1. Utiliser une "popup" d'installation à travers le Web.
    2. Faire télécharger le package.


    Dans la solution 2, tu as 2 choix : que ce qui est téléchargé est
    1. un script,
    2. ou bien directement le package (en général via tar et gzip ou compress)


    • Dans la solution 1, tu exécutes en allant cherche sur le net chaque fichier et en créant ton arborescence en local.
    • Dans la solution 2, déjà tu demandes de faire un gunzip (ou uncompress) puis tar -xvf. Ensuite comme vous l'avez décidé un .configure, make, et make install.



    Donc votre solution est parfaite.

    Qu'est-ce qui t'embête ??

    C'est facile de faire un script, non ?
    C'est facile de faire un make , non ?

    Sinon pose les questions que tu as..

    Mais tu as la bonne solution...



    En ce qui concerne les outils, ne te méprends pas. Dans ceux que tu cites il n'y en a qu'un, vraiment. C'est make.

    make install est juste une cible dans le makefile qui va aller copier les binaires (dans ton bin) au bon endroit sur le système (par exemple /share/bin).

    configure est un script (à récupérer et à adapter par exemple de GNU ou de n'importe quel package largement répandu), qui va juste chercher la machine, le compilo utilisé, en général mettre des options de compil (modifiables à la main), etc... Tu peux le faire toi-même. En gros c'est uniquement les options de compil et éventuellement certains flags (POSIX, -O2, -MIPS, ..., éventuellement 64 ou 32 bits), etc etc.. Ca peut aussi être juste un script qui détermine la machine et copie un fichier d'options de Makefile pour un certain système dans un fichier d'options par défaut que vous utiliserez dans le Makefile général. (par exemple tu as : Makefile (qui inclus Makefile.options), MakefileOptions.HPUX, MakefileOptions.SUN, MakefileOptions.Linux, ... Ton configure peut alors juste dterminer la machine, et copier le bon MakefileOptions.* dans Makefile.options)

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Par défaut
    Ce qui m'embête est essentiellement la difficulté de prise en main des autotools (pour générer le script configure par exemple). Comment l'utilisateur procède pour désinstaller les binaires/manuels et autre? Comment lancer un test d'exemple ? Peut être qu'on s'est mal documenté, mais on y a passé (à notre gout) trop de temps pour un résultat basique, qui marche certes, mais qui ne nous satisfait pas tout a fait, d'où ma question...

    ... qui était de savoir si il y avait une méthode préférentielle, plus simple a mettre en œuvre que les autotools... Je n'ai encore jamais eu l'occasion de déployer vraiment un logiciel, d'où peut être la naïveté de mes questions.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par vinzzzz Voir le message
    Ce qui m'embête est essentiellement la difficulté de prise en main des autotools (pour générer le script configure par exemple). Comment l'utilisateur procède pour désinstaller les binaires/manuels et autre? Comment lancer un test d'exemple ? Peut être qu'on s'est mal documenté, mais on y a passé (à notre gout) trop de temps pour un résultat basique, qui marche certes, mais qui ne nous satisfait pas tout a fait, d'où ma question...

    ... qui était de savoir si il y avait une méthode préférentielle, plus simple a mettre en œuvre que les autotools... Je n'ai encore jamais eu l'occasion de déployer vraiment un logiciel, d'où peut être la naïveté de mes questions.

    Ben comme tu as fait "make install" tu fais "make desinstall" ou "make remove".

    Avec la même procédure d'appel :

    A l'installation :

    ./configure
    make
    make install

    pour enlever

    ./configure
    make remove


  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Par défaut
    Oui en effet (c'est make uninstall au passage ) j'avais pourtant lu pas mal de truc sur les autotools (et je les avaient d'ailleurs trouvé soit trop complexe, soit trop succin...)

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par vinzzzz Voir le message
    (c'est make uninstall au passage )
    Comme dit plus haut, aucune importance, ce n'est pas un outil, c'est une cible dans ton make à toi... c'est toi qui décide comment tu l'appelles..

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/06/2009, 11h35
  2. Problème Déploiement Programme
    Par aurelien2723 dans le forum JDBC
    Réponses: 1
    Dernier message: 10/07/2008, 11h50
  3. Déploiement d'un programme
    Par el_pilacho dans le forum VB.NET
    Réponses: 4
    Dernier message: 03/05/2007, 17h36
  4. [MFC] Icône du programme de déploiement
    Par annedjomo dans le forum MFC
    Réponses: 5
    Dernier message: 04/12/2005, 12h12

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