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 :

Can't locate Data/Validate/Domain.pm in @INC


Sujet :

Modules Perl

  1. #1
    Membre habitué Avatar de rufa11
    Consultant informatique
    Inscrit en
    Décembre 2007
    Messages
    300
    Détails du profil
    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 300
    Points : 136
    Points
    136
    Par défaut Can't locate Data/Validate/Domain.pm in @INC
    Bonjour,

    Je ne suis pas un expert en Perl donc je vous pose la questions, voila j'ai télécharge un plugin perl pour surveiller notre serveur SMTP s'il est dans blacklist, en mode commande il fonctionne très bien mais dans le système de monitoring ça ne fontionne pas, le résultat est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Can't locate Data/Validate/Domain.pm in @INC (@INC contains: /root/perl5/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/lib64/nagios/plugins/check_rbl line 27.
    BEGIN failed--compilation aborted at /usr/lib64/nagios/plugins/check_rbl line 27.
    Le plugin est:
    https://exchange.nagios.org/director...ck_rbl/details

    J'ai fais une recherche des modules et ils ont tous dans le répertoire /root/perl5/lib/perl5 qui est dans le @INC
    Je me suis doutais de la version de Per mais il n'y a qu'une seule version installée.

    SVP qulqu'un a une idée ?

  2. #2
    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 : 498 771
    Points
    498 771
    Par défaut
    Bonsoir,

    Sur ton serveur, peux-tu lancer les commandes suivantes en root, sudo :

    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cpan -i Data::Validate::Domain

  3. #3
    Membre habitué Avatar de rufa11
    Consultant informatique
    Inscrit en
    Décembre 2007
    Messages
    300
    Détails du profil
    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 300
    Points : 136
    Points
    136
    Par défaut
    Merci Pour la réponse rapide,

    Pour la première commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    perl -V
    Summary of my perl5 (revision 5 version 16 subversion 3) configuration:
    ...
    ...
    ...
    Pour la deuxième commande:

    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
    cpan -i Data::Validate::Domain
    Loading internal null logger. Install Log::Log4perl for logging messages
    Reading '/root/.cpan/Metadata'
      Database was generated on Mon, 19 Jun 2017 15:41:03 GMT
    Fetching with LWP:
    http://cpan.pair.com/authors/01mailrc.txt.gz
    Reading '/root/.cpan/sources/authors/01mailrc.txt.gz'
    ............................................................................DONE
    Fetching with LWP:
    http://cpan.pair.com/modules/02packages.details.txt.gz
    Reading '/root/.cpan/sources/modules/02packages.details.txt.gz'
      Database was generated on Tue, 20 Jun 2017 19:17:02 GMT
    ............................................................................DONE
    Fetching with LWP:
    http://cpan.pair.com/modules/03modlist.data.gz
    Reading '/root/.cpan/sources/modules/03modlist.data.gz'
    DONE
    Writing /root/.cpan/Metadata
    Data::Validate::Domain is up to date (0.14).
    Déjà installé

    Pour confirmer encore aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cpan -e 'use Data::Validate::Domain;'
    Loading internal null logger. Install Log::Log4perl for logging messages
    Unknown option: e
    Reading '/root/.cpan/Metadata'
      Database was generated on Tue, 20 Jun 2017 19:17:02 GMT
    Je ne comprend pas pourquoi ça marche en mode commande line et pas dans le système de monitoring !

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Cela veut dire qui, précisément, "dans le système de monitoring"? Ce "système" est-il lancé par un autre utilisateur que celui que tu utilises? ll est assez probable dans ce cas qu'il n'exécute pas les mêmes instructions de connexion que quand tu ouvres une session interactive. On a régulièrement ce genre de problème avec des scripts lancés sous la chron table. Ce qu'il y a à vérifier dépend du shell que tu utilises.

  5. #5
    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 : 498 771
    Points
    498 771
    Par défaut
    Ce qui est étrange, c'est que le module est installé par root, donc installé sur tout le système. De ce fait, il devrait être accessible par n'importe quel utilisateur.
    Es-tu sûr qu'il n'y a pas plusieurs versions de Perl installées sur la machine ?

  6. #6
    Membre habitué Avatar de rufa11
    Consultant informatique
    Inscrit en
    Décembre 2007
    Messages
    300
    Détails du profil
    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 300
    Points : 136
    Points
    136
    Par défaut
    Bonjour,

    Merci pour les réponses,

    Citation Envoyé par Lolo78 Voir le message
    Cela veut dire qui, précisément, "dans le système de monitoring"? Ce "système" est-il lancé par un autre utilisateur que celui que tu utilises? ll est assez probable dans ce cas qu'il n'exécute pas les mêmes instructions de connexion que quand tu ouvres une session interactive. On a régulièrement ce genre de problème avec des scripts lancés sous la chron table. Ce qu'il y a à vérifier dépend du shell que tu utilises.

    Citation Envoyé par djibril78 Voir le message
    Ce qui est étrange, c'est que le module est installé par root, donc installé sur tout le système. De ce fait, il devrait être accessible par n'importe quel utilisateur.
    Es-tu sûr qu'il n'y a pas plusieurs versions de Perl installées sur la machine ?
    Il y a un user qui lance les commandes définis dans le système via le plugin et pour ce user rien n'est défini dans le fichier .bash_profile pour utiliser autre chose que /usr/bin/perl, le plugin est invoqué avec les mèmes options que j'utilise en mode commande saufe que les options sont définis dans le fichier services.conf et la commande est définit dans le fichier commandes.conf mais çe;a n'a rien avoir avec les modules de Perl, ce que je trouve bizarre c'est que les modules de Perl ont été installés en mode root donc normalement ils ont à leur standrad répertoire, de plus j'ai pas d'autres version de Perl car c'est Python que j'avais installé une autre version et n'en pas Perl.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # which perl
    /usr/bin/perl

  7. #7
    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 : 498 771
    Points
    498 771
    Par défaut
    Ouais, c'est étrange, je n'ai pas d'idées. J'ai le même souci sur un de mes serveurs Debian où j'ai un plugin Nagios écrit par mes soins en Perl qui n'arrive pas à lire (je dirais même voir) un fichier log qui est dans le répertoire /tmp.
    En ligne de commande, tout est OK, mais sous le user nagios qui lance les commandes.
    Bref, c'est un mystère, car sur d'autres serveurs, tout fonctionne bien !!!

    Si tu trouves la réponse, n'hésite pas à poster !

    N.B. Est-ce un souci de disque séparé, partition... regarde les répertoires /usr/bin, /usr/local/bin... s'il y a d'autres Perl installé. Fait un locate perl (ou un find) sur ton serveur entier.

  8. #8
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 309
    Points : 12 817
    Points
    12 817
    Par défaut
    Bonjour,

    Je vois que tu as fait un which perl mais qui semble être sous l'utilisateur root...
    Si tes tests en mode console sont fait en tant que root, il y a une possible explication: problème de droit.

    Plus haut, tu dis que tes modules sont bien tous dans /root/perl5/lib/perl5, or en générale, les répertoires de root ne sont pas accessibles par tout le monde.
    D'ailleurs, si tes modules sont dans ce répertoire, ce n'est pas une installation générale mais utilisateur qui là, l'utilisateurs est root.

    Donc, soit réinstaller mais pour tout le monde, sinon, tu peux aussi faire la manipulation suivante et retester (mais en principe c'est du temporaire, car pas propre) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chmod 755 /root
    chmod -R 755 /root/perl5

  9. #9
    Membre habitué Avatar de rufa11
    Consultant informatique
    Inscrit en
    Décembre 2007
    Messages
    300
    Détails du profil
    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 300
    Points : 136
    Points
    136
    Par défaut
    Salut,

    Efféctivement le problème c'est que le système de monitoring icinga n'arrivait pas a accéder aux modules car c'était sous le /root..., je ne sais pas comment çâ m'a échappé, enfin il faut désinstaller les modules et changer le répertoire d'installation des modules:

    cpanm -U module::name // pour désinstaller les modules.
    #cpan
    cpan> o conf makepl_arg INSTALL_BASE=/.../repertoire_d_installation // changer le répertoire des modules
    cpan> o conf commit // pour sauvegarder les modification d'une façon permanente.

  10. #10
    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 : 498 771
    Points
    498 771
    Par défaut

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

Discussions similaires

  1. Can't locate Bio/Tool/GFF.pm in @INC
    Par alaninho dans le forum Bioinformatique
    Réponses: 1
    Dernier message: 23/11/2011, 09h42
  2. [D5] data validator
    Par didier.cabale dans le forum Composants VCL
    Réponses: 1
    Dernier message: 21/04/2006, 23h27
  3. dbd::oracle can't locate object method "driver"
    Par maxlupin dans le forum Langage
    Réponses: 4
    Dernier message: 26/09/2005, 11h14
  4. utiliser DBI (Can't locate DBI.pm)
    Par milka dans le forum SGBD
    Réponses: 5
    Dernier message: 12/08/2005, 19h36

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