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 :

Installation du module DBD::mysql


Sujet :

Modules Perl

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 46
    Points : 40
    Points
    40
    Par défaut Installation du module DBD::mysql
    Bonjour bonjour.

    Quelques informations techniques :
    - Windows XP
    - MySQL 5.0.51b

    J'ai installé ActivePerl 5.10.2 sur une machine n'ayant pas accès au net, et j'ai également besoin de lui ajouter le module nécessaire pour se connecter à une BDD de type MySQL.

    Je vous avoue un peu galérer sur ce coup, car il semble que tout se fasse, en Perl, via l'utilisation de ppm. Cependant, comme la machine sur laquelle j'essaie d'installer le module n'est pas connecté au net, ben je me casse les dents quoi .

    J'ai donc été jeté un coup d'oeil sur le fichier d'install du module DBD-mysql-4.007, sur le site du CPAN.
    http://search.cpan.org/src/CAPTTOFU/...8/INSTALL.html

    Et me voilà parti pour installer à la main à partir de la source, puisque tous les paquetages binaires font appel à ppm.

    1. Les prérequis :
    - Perl : OK
    - MySQL : OK
    - DBI : il est disponible dans l'interface graphique du ppm donc OK
    - un compilateur C : aucune idée
    - Gzip libraries : OK

    Première question : comment faire pour voir si je dispose d'un compilateur C. hum, je ne sais pas trop s'il y a un compilateur C de base sur un Windows XP ^_^.

    2. Je me suis quand même tenté l'install. Voilà ce que ça donne :
    2.1 j'ai créé une base de données test et un nouveau user perl
    2.2 Dans une fenêtre de commande MS-DOS, je tape la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl Makefile.PL --testdb=test
    J'ai alors l'erreur suivante :
    Code : 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
    Use of uninitialized value $ENV{"USER"} in concatenation (.) or string at Makefile.PL line 500.
    Use of uninitialized value in concatenation (.) or string at Makefile.PL line 500.
     
    PLEASE NOTE:
     
    For 'make test' to run properly, you must ensure that the
    database user '' can connect to your MySQL server
    and has the proper privileges that these tests require such
    as 'drop table', 'create table', 'drop procedure', 'create procedure'
    as well as others.
     
    mysql> grant all privileges on test.* to ''@'localhost' identified by 's3kr1t';
     
    You can also optionally set the user to run 'make test' with:
     
    perl Makefile.pl --testuser=username
     
    Failed to determine directory of mysql.h. Use
     
      perl Makefile.PL --cflags=-I<dir>
     
    to set this directory. For details see the INSTALL.html file,
    section "C Compiler flags" or type
     
      perl Makefile.PL --help
    Voyant qu'il me manquait l'utilisateur + le password de la BDD, j'ai ajouté les options --testuser et --testpassword.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl Makefile.PL --testdb=test --testuser=<MonUser> --testpassword=<MonPwd>
    J'ai alors obtenu l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Failed to determine directory of mysql.h. Use
     
      perl Makefile.PL --cflags=-I<dir>
     
    to set this directory. For details see the INSTALL.html file,
    section "C Compiler flags" or type
     
      perl Makefile.PL --help
    Après une rapide recherche, j'ai découvert où se trouvait mysql.h et je l'ai ajouté à ma ligne de commande.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl Makefile.PL --testdb=test --testuser=<MonUser> --testpassword=<MonPwd> --cflags=-I<MonDirInclude>
    J'ai alors buté sur l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Failed to determine directory of mysqlclient.lib. Use
     
      perl Makefile.PL "--libs=-L<dir> -lmysqlclient -lz -lm -lcrypt -lnsl"
     
    to set this directory. For details see the INSTALL.html file,
    section "Linker flags" or type
     
      perl Makefile.PL --help
    J'ai donc fait un recherche et j'ai trouvé deux fichiers mysqlclient.lib dans l'arborescence de MySQL :
    - un dans <MYSQL_INSTALL_DIR>/lib/opt
    - un autre dans <MYSQL_INSTALL_DIR>/lib/debug
    J'ai opté pour celui dans opt et j'ai ajouté le chemin à ma ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl Makefile.PL --testdb=test --testuser=<MonUser> --testpassword=<MonPwd> --cflags=-I<MonDirInclude> "--libs=-L<MonDirLibOpt> -lmysqlclient -lz -lm -lcrypt -lnsl"
    Et alors, j'ai le message suivant que je ne comprends plus trop .
    Code : 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
    I will use the following settings for compiling and testing:
     
      cflags        (User's choice) = -I<MonDirInclude>
      embedded      (guessed      ) =
      libs          (User's choice) = -L<MonDirLibopt> -lmysqlclient -lz -lm -lcrypt -lnsl
      nocatchstderr (default      ) = 0
      nofoundrows   (default      ) = 0
      ssl           (guessed      ) = 0
      testdb        (User's choice) = test
      testhost      (default      ) =
      testpassword  (User's choice) = <monPwd>
      testsocket    (default      ) =
      testuser      (User's choice) = <Monusr>
     
    To change these settings, see 'perl Makefile.PL --help' and
    'perldoc INSTALL'.
     
    Argument "6.42_01" isn't numeric in numeric ge (>=) at Makefile.PL line 355.
    Checking if your kit is complete...
    Looks good
    Note (probably harmless): No library found for -lz
    Note (probably harmless): No library found for -lm
    Note (probably harmless): No library found for -lcrypt
    Note (probably harmless): No library found for -lnsl
    Note (probably harmless): No library found for oldnames.lib
    Note (probably harmless): No library found for kernel32.lib
    Note (probably harmless): No library found for user32.lib
    Note (probably harmless): No library found for gdi32.lib
    Note (probably harmless): No library found for winspool.lib
    Note (probably harmless): No library found for comdlg32.lib
    Note (probably harmless): No library found for advapi32.lib
    Note (probably harmless): No library found for shell32.lib
    Note (probably harmless): No library found for ole32.lib
    Note (probably harmless): No library found for oleaut32.lib
    Note (probably harmless): No library found for netapi32.lib
    Note (probably harmless): No library found for uuid.lib
    Note (probably harmless): No library found for ws2_32.lib
    Note (probably harmless): No library found for mpr.lib
    Note (probably harmless): No library found for winmm.lib
    Note (probably harmless): No library found for version.lib
    Note (probably harmless): No library found for odbc32.lib
    Note (probably harmless): No library found for odbccp32.lib
    Note (probably harmless): No library found for msvcrt.lib
    *** You're using Microsoft Visual C++ compiler or similar but
        the LIB and INCLUDE environment variables are not both set.
     
        You need to run the VCVARS32.BAT batch file that was supplied
        with the compiler before you can use it.
     
        A copy of vcvars32.bat can typically be found in the following
        directories under your Visual Studio install directory:
            Visual C++ 6.0:     vc98\bin
            Visual Studio .NET: vc7\bin
     
        Find it, run it, then retry this.
     
        If you think this error is not correct then just set the LIB and
        INCLUDE environment variables to some value to disable the check.
    Mon petit doigt me dit que c'est cette histoire de compilateur qui me pose problème ^_^. J'ai fait une recherche pour trouver vcvars32.bat, mais pas moyen de le trouver et donc je ne peux pas utiliser la solution du "find it, run it, then retry this".

    1. Faut-il que je récupère un autre compilateur C, style, euh, gcc ou quelque chose dans le genre ?

    2. Une fois que tout est compilé, est-ce que je peux choper le résultat et l'ajouter sur n'importe quelle autre station, sans repasser par toutes ces étapes ?
    (en fait, je répugne un peu à installer un compilateur C sur la machine qui n'a pas accès au Net).

    Merci d'avance pour votre aide.

    Bahan

  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
    Tu es courageux !! Mais malavisé !

    Primo, avant tout sache que tu peux parfaitement rapatrier des paquets ppm sur une autre machine et les installer offline sur la machine que tu veux (n'oublie pas de récupérer toutes les dépendances Perl, les dépendances binaires sont déjà dans les archives, sauf MySQL lui-même bien sûr...) sans compilateur ni rien.
    Consulte la doc de PPM pour les détails.

    Secundo, en fait par défaut ActivePerl scanne le système à la recherche de gcc (que tu n'as pas) et s'il ne le trouve pas, se rabat sur cl, le compilateur en ligne de commande de Microsoft (que tu n'as pas non plus : Windows n'a pas de compilateur C par défaut). La meilleure solution que j'ai trouvé pour faire de la compilation C sous Windows avec Perl c'est d'utiliser Mingw (avec Msys) et NMake (récupéré sur une installation de VC++ pour avoir la dernière version, la version distribuée indépendamment a dans les dix ans) (dmake pourrait marcher aussi mais j'ai eu pas mal de problème la fois où j'ai essayé).

    --
    Jedaï

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 46
    Points : 40
    Points
    40
    Par défaut
    Hey mais ça c'est de la bonne nouvelle ^_^.

    Merci pour votre réponse.

    Bon, j'ai réussi à configurer le proxy pour faire marcher ppm sur ma station de travail.

    Et maintenant, si j'ai bien compris, il faut que je récupère la localisation adéquate à ajouter au ppm pour pouvoir downloader le module DBD-MySql. Une fois ceci fait, j'embarque les dépendances et ce module et cela devrait fonctionner.

    Cependant, une question me taraude l'esprit. Existe-t-il un site listant les localisations que l'on peut ajouter dans le ppm ?

    Bahan

  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
    Tu peux commencer par consulter notre FAQ tu sais... Tu as même un lien direct vers la section qui nous concerne en haut de ce forum.

    En tout cas tu peux aller utiliser http://theoryx5.uwinnipeg.ca/ . Cette page te donnera les liens vers les différents repository selon ta version d'ActivePerl, ils contiennent DBD-mysql .

    --
    Jedaï

Discussions similaires

  1. Pb d'installation du module DBD-mysql-4.019
    Par kenzoduf1 dans le forum Modules
    Réponses: 0
    Dernier message: 16/11/2011, 08h25
  2. Besoin de précision pour module DBD::mysql
    Par mensoif dans le forum SGBD
    Réponses: 7
    Dernier message: 10/08/2009, 12h50
  3. installation de module php-mysql
    Par navorinco dans le forum Administration système
    Réponses: 13
    Dernier message: 16/04/2009, 11h24
  4. probleme pour installer le module DBD::Sybase
    Par black_code dans le forum SGBD
    Réponses: 9
    Dernier message: 25/07/2005, 15h06
  5. installation du module DBD::Pg
    Par champijulie dans le forum Modules
    Réponses: 2
    Dernier message: 18/05/2005, 17h21

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