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

Programmation et administration système Perl Discussion :

Comment installer la bibliothèque GD - Gestion des dépendances sous Linux et Mac OS [Tutoriel]


Sujet :

Programmation et administration système Perl

  1. #1
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut Comment installer la bibliothèque GD - Gestion des dépendances sous Linux et Mac OS
    Bonjour,

    Je vous propose un nouvel article pour installer le module GD et les bibliothèques dépendantes libgd, ligpng... cruciales sous Linux et Mac OS.

    Comment installer la bibliothèque GD - Gestion des dépendances sous Linux et Mac OS

    À vos claviers !

  2. #2
    Rédactrice

    Avatar de stoyak
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 408
    Points : 1 491
    Points
    1 491
    Par défaut
    Bonjour,

    Je testerai tout ça sur mon mac à la maison !
    Cela demande du courage d'en tirer du plaisir
    Quand on n'a qu'un marteau, tous les problèmes ressemblent à un clou

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Article mis à jour avec des nouvelles versions des packages.

    N'hésitez pas à me signaler tout problème.

  5. #5
    Rédacteur

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2002
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 360
    Points : 3 614
    Points
    3 614
    Par défaut
    bonsoir,

    Sous Fedora 19 il suffit de faire yum install gd, gd-devel en étant root

    Antonio

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Bonsoir,

    Merci pour ton retour. Le problème n'est pas en soit l'instalation de GD, mais surtout la présence des librairies libpng, libjpeg... sans quoi les modules ne seront pas correctement installés car compilation impossible et tests en échec. C'est le gros souci généralement sous Mac.

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    J'ai pour ma part un soucis d'édition de liens sur Mac OS X (64 bits) à l'exécution de perl -MCPAN -e "install GD".

    Voici ce que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ld: warning: ignoring file /usr/local/lib/libjpeg.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libjpeg.dylib
    ld: warning: ignoring file /usr/local/lib/libpng16.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libpng16.dylib
    ld: warning: ignoring file /usr/local/lib/libfreetype.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libfreetype.dylib
    ld: warning: ignoring file /usr/local/lib/libtiff.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libtiff.dylib
    ld: warning: ignoring file /usr/local/lib/libgd.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libgd.dylib
    Il y a un soucis dans la ligne précédent ce bloc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LD_RUN_PATH="/usr/local//lib:/usr/lib:/usr/X11/lib" cc -mmacosx-version-min=10.9  -arch x86_64 -arch i386 ...
    Comment forcer Perl à utiliser les bibliothèques 64 bits en supprimant le -arch i386 dans la ligne ci-dessus ?

    Merci
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  8. #8
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Bonjour,

    Normalement, il s'adapte à l'architecture de la machine. Donc je doute que le souci soit à ce niveau.
    Mais bon, l'installation de ce module sous MAC est vraiment catastrophique.

    Je suis preneur de toute solution qui fonctionne.


  9. #9
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    J'ai réussi à corriger ces avertissements en faisant : env "ARCHFLAGS=-arch x86_64" perl -MCPAN -e "install GD".

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    Reading '/Users/jerome/.cpan/Metadata'
      Database was generated on Mon, 17 Feb 2014 00:53:02 GMT
    Running install for module 'GD'
    Running make for L/LD/LDS/GD-2.51.tar.gz
    Checksum for /Users/jerome/.cpan/sources/authors/id/L/LD/LDS/GD-2.51.tar.gz ok
     
      CPAN.pm: Building L/LD/LDS/GD-2.51.tar.gz
     
    Notice: Type perl Makefile.PL -h for command-line option summary.
     
    Configuring for libgd version 2.1.0-rc1.
    Checking for stray libgd header files...none found.
     
    Included Features:          GD_TIFF GD_JPEG GD_FREETYPE GD_PNG GD_GIF GD_GIFANIM GD_OPENPOLYGON
    GD library used from:       /usr/local
    Checking if your kit is complete...
    Looks good
    Generating a Unix-style Makefile
    Writing Makefile for GD
    Writing MYMETA.yml and MYMETA.json
    /usr/bin/perl GD/Image.pm.PLS GD/Image.pm
    Extracting Image.pm (with variable substitutions)
    cp GD/Polyline.pm blib/lib/GD/Polyline.pm
    cp qd.pl blib/lib/qd.pl
    cp GD/Image.pm blib/lib/GD/Image.pm
    cp GD/Simple.pm blib/lib/GD/Simple.pm
    cp GD.pm blib/lib/GD.pm
    AutoSplitting blib/lib/GD.pm (blib/lib/auto/GD)
    cp GD/Polygon.pm blib/lib/GD/Polygon.pm
    cp GD/Group.pm blib/lib/GD/Group.pm
    Running Mkbootstrap for GD ()
    chmod 644 GD.bs
    /usr/bin/perl /System/Library/Perl/5.16/ExtUtils/xsubpp  -typemap /System/Library/Perl/5.16/ExtUtils/typemap -typemap typemap  GD.xs > GD.xsc && mv GD.xsc GD.c
    cc -c  -I/usr/local/include -arch x86_64 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -I/usr/local/include -Wformat=0 -Os   -DVERSION=\"2.51\" -DXS_VERSION=\"2.51\"  "-I/System/Library/Perl/5.16/darwin-thread-multi-2level/CORE"  -DHAVE_JPEG -DHAVE_FT -DHAVE_GIF -DHAVE_PNG GD.c
    GD.xs:2192:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
                if (value = hv_fetch(hash,"linespacing",strlen("linespacing"),0)) {
                    ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    GD.xs:2192:16: note: place parentheses around the assignment to silence this warning
                if (value = hv_fetch(hash,"linespacing",strlen("linespacing"),0)) {
                          ^
                    (                                                           )
    GD.xs:2192:16: note: use '==' to turn this assignment into an equality comparison
                if (value = hv_fetch(hash,"linespacing",strlen("linespacing"),0)) {
                          ^
                          ==
    GD.xs:2196:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
                if (value = hv_fetch(hash,"charmap",strlen("charmap"),0)) {
                    ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    GD.xs:2196:16: note: place parentheses around the assignment to silence this warning
                if (value = hv_fetch(hash,"charmap",strlen("charmap"),0)) {
                          ^
                    (                                                   )
    GD.xs:2196:16: note: use '==' to turn this assignment into an equality comparison
                if (value = hv_fetch(hash,"charmap",strlen("charmap"),0)) {
                          ^
                          ==
    2 warnings generated.
    rm -f blib/arch/auto/GD/GD.bundle
    LD_RUN_PATH="/usr/local//lib:/usr/lib:/usr/X11/lib" cc -mmacosx-version-min=10.9  -arch x86_64 -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector GD.o  -o blib/arch/auto/GD/GD.bundle \
    	   -L/usr/X11/lib -L/usr/local//lib -L/usr/local/lib -ljpeg -lz -lpng16 -L/usr/local/lib -lfreetype -lz -lbz2 -L/usr/local//lib -ltiff -liconv -lgd  	\
     
    chmod 755 blib/arch/auto/GD/GD.bundle
    /usr/bin/perl -MExtUtils::Command::MM -e 'cp_nonempty' -- GD.bs blib/arch/auto/GD/GD.bs 644
    /usr/bin/perl "-Iblib/arch" "-Iblib/lib" bdf_scripts/bdf2gdfont.PLS bdf_scripts/bdf2gdfont.pl
    Extracting bdf2gdfont.pl (with variable substitutions)
    cp bdf_scripts/bdf2gdfont.pl blib/script/bdf2gdfont.pl
    /usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/bdf2gdfont.pl
    Manifying blib/man1/bdf2gdfont.pl.1
    Manifying blib/man3/GD.3pm
    Manifying blib/man3/GD::Image.3pm
    Manifying blib/man3/GD::Polygon.3pm
    Manifying blib/man3/GD::Polyline.3pm
    Manifying blib/man3/GD::Simple.3pm
      LDS/GD-2.51.tar.gz
      /usr/bin/make -- OK
    Running make test
    Running Mkbootstrap for GD ()
    chmod 644 GD.bs
    PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
    t/GD.t ........ 1/12 Testing using png support.
    t/GD.t ........ Failed 7/12 subtests 
    	(less 2 skipped subtests: 3 okay)
    t/Polyline.t .. ok   
     
    Test Summary Report
    -------------------
    t/GD.t      (Wstat: 0 Tests: 12 Failed: 7)
      Failed tests:  2-7, 10
    Files=2, Tests=13,  0 wallclock secs ( 0.03 usr  0.01 sys +  0.14 cusr  0.03 csys =  0.21 CPU)
    Result: FAIL
    Failed 1/2 test programs. 7/13 subtests failed.
    make: *** [test_dynamic] Error 255
      LDS/GD-2.51.tar.gz
      /usr/bin/make test -- NOT OK
    //hint// to see the cpan-testers results for installing this module, try:
      reports LDS/GD-2.51.tar.gz
    Running make install
      make test had returned bad status, won't install without force

    J'ai essayé de faire ce qui est écrit tout à la fin :

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    cpan[1]> reports LDS/GD-2.51.tar.gz                                                                                                                                                                       
    Reading '/Users/jerome/.cpan/Metadata'
      Database was generated on Mon, 17 Feb 2014 00:53:02 GMT
    Distribution: L/LD/LDS/GD-2.51.tar.gz
    Fetching 'http://www.cpantesters.org/show/GD.yaml'...DONE
     
    Catching error: "CPAN::Exception::yaml_process_error=HASH(0x7feb1017f878)" at /Library/Perl/Updates/5.16.2/CPAN.pm line 392.
    	CPAN::shell() called at /Library/Perl/Updates/5.16.2/App/Cpan.pm line 338
    	App::Cpan::_process_options('App::Cpan') called at /Library/Perl/Updates/5.16.2/App/Cpan.pm line 421
    	App::Cpan::run('App::Cpan') called at /usr/bin/cpan5.16 line 12

    Pas mieux
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Bon finalement, j'ai fait une installation forcée "à la main" de GD :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    wget http://www.cpan.org/authors/id/L/LD/LDS/GD-2.51.tar.gz;
    tar -xzvf GD-2.51.tar.gz
    cd GD-2.51
    sudo env "ARCHFLAGS=-arch x86_64" perl Makefile.PL 
    make
    sudo make install
    Les tests ne passent toujours pas, mais l'application qui utilise GD fonctionne quand même.

    Bref, c'est pas très joli mais j'ai passé suffisamment de temps la dessus.

    En tout cas merci pour ton tuto qui permet de gagner du temps sur la recherche des dépendances
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  11. #11
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    Merci pour le tuto.
    Pour que ça fonctionne sur mon mac, j'ai du retélécharger X11 pour que le libfreetype.6.dylib soit à jour!
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

Discussions similaires

  1. Gestion des processus sous Linux
    Par progdevlop dans le forum C
    Réponses: 18
    Dernier message: 27/06/2009, 14h45
  2. Gestion des perfs sous linux
    Par yanis97 dans le forum Linux
    Réponses: 3
    Dernier message: 21/02/2009, 21h29
  3. Outils de gestion des fichiers sous Linux
    Par achmn dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 04/06/2008, 11h54
  4. gestion des quotas sous linux
    Par mrrenard dans le forum Administration système
    Réponses: 2
    Dernier message: 05/02/2008, 11h40
  5. [RPM] gestion des dépendances sous RedHat
    Par Longrais dans le forum Administration système
    Réponses: 3
    Dernier message: 16/04/2007, 20h28

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