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 :

ou trouver un module ?


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Par défaut ou trouver un module ?
    Bonjour,

    désolé je n'y connais rien en Perl. Je voudrais utiliser un module: Net::SSH2

    J'ai un petit bout de programme trouvé sur internet que je voudrais utiliser en lieu et place à un appel à Net::SCP::Expect qui plante en timed out au beau milieu d'un transfert de fichier.

    Voici le début du programme perl:

    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
    use Net::SSH2;
    my $host = “monremotehost”;
    my $user = “user”;
    my $pass = “password”;
    my $pub = “”;
    my $pri = “”;
    my $remotedir = “/dir/distant”;
    my @files = ( "monfichier.txt" );
     
    # Connect to host
    my $ssh = Net::SSH2->new();
    if (! $ssh->connect($host)) {
    	print “Failed connection to $host\n”;
    	exit(1);
    }
    Voici l'erreur que Perl me retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    monlocal:~/xxxxx$ /usr/bin/perl test.pl
    Can't locate Net/SSH2.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at test.pl line 1.
    BEGIN failed--compilation aborted at test.pl line 1.
    monlocal:~/xxxxx$
    Mais j'ai trouvé ca dans un des répertoires listés ci-dessus:
    /usr/lib/perl5/site_perl/5.8.8/Net/SSH/Perl/SSH2.pm

    est ce que c'est le même module ?
    Si c'est le même comment faire l'include de ce module ?

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2013
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 247
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    use SSH2 /usr/lib/perl5/site_perl/5.8.8/Net/SSH/Perl;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BEGIN { unshift(@INC, /usr/lib/perl5/site_perl/5.8.8/Net/SSH/Perl) }
    mais le plus simple serait de rajouter "/usr/lib/perl5/site_perl/5.8.8/Net/SSH/Perl" dans le PATH Perl

  3. #3
    Membre expérimenté
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Par défaut
    Merci, j'ai trouvé que ce module Net::SSH:: Perl n'est pas celui qu'il faut utilisé car il ne possède pas de méthode scp()
    Il fait très peu de chose sous ssh.

    j'avais réussi à l'utilisé en mettant:
    Merci quand même !

  4. #4
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    Bonjour,
    Tu le trouveras sur le CPAN
    Ou l'accueil puis recherche Net::SSH2 CPAN Accueil recherche

    Suivant que tu es en Active Perl ou Strawberry Perl il s'installe différemment :

    En Active Perl, dans une invite de commande tu tapes ppm tu auras une interface graphique dans laquelle tu trouveras normalement Net::SSH2
    Si tu as une version trop ancienne inférieure à Perl 5.16 (je pense) tu auras un message d'erreur, il te faudra faire une installation depuis le dépôt Bribes
    ATTENTION il y en a 2 un pour 32 bits, un pour 64 bits.
    Un bon tuto pour faire une installation à partir de Bribes...

    En Strawberry Perl dans une invite de commande tu tapes cpan
    Et au prompt cpan> tu tapes install Net::SSH2

    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
    E:\_DEV>perl -v
     
    This is perl 5, version 20, subversion 0 (v5.20.0) built for MSWin32-x64-multi-thread
     
    Copyright 1987-2014, Larry Wall
     
    Perl may be copied only under the terms of either the Artistic License or the
    GNU General Public License, which may be found in the Perl 5 source kit.
     
    Complete documentation for Perl, including FAQ lists, should be found on
    this system using "man perl" or "perldoc perl".  If you have access to the
    Internet, point your browser at http://www.perl.org/, the Perl Home Page.
     
     
    E:\_DEV>cpan
     
    cpan shell -- CPAN exploration and modules installation (v2.05)
    Enter 'h' for help.
     
    cpan> install Net::SSH2
    Fetching with LWP:
    ...
    ...
    Si tu as d'autres besoins, précise-nous dans quelle version de Perl tu es en tapant dans une invite de commande :
    perl -v

    [EDIT] Trop tard, grillé

  5. #5
    Membre expérimenté
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Par défaut
    Bonjour, merci pour toutes ces précisions.
    La version de Perl sur ma plateforme personnelle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [xxxx@oc7703715232 ~]$ perl -v
    This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi
    [xxxx@oc7703715232 ~]$
    Voici la version sur le serveur de production
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    prod:~$ perl -v
    This is perl, v5.8.8 built for i386-linux-thread-multi
    prod:~$
    D'autant que la sécurité nous interdit de faire des upgrades de Perl. Je vais devoir les forcer a upgrader. Mais vers quoi ?
    Car mon problème c'est de remplacer un bout de code Perl scp qui plante par autre chose.
    C'est pour celà que j'ai jeté mon dévolu sur ce module Net::SSH2::SFTP.

    Précision le serveur de prod n'a aucun accès internet.

  6. #6
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    Bonjour,

    C'est pour celà que j'ai jeté mon dévolu sur ce module Net::SSH2::SFTP.
    S'il n'y a pas d'autres alternatives à Net::SSH2::SFTP et :

    Je vais devoir les forcer a upgrader. Mais vers quoi ?
    En leur faisant remarquer que la version 5.8 ou 5.10 est ancienne et que pour ne pas risquer de mauvaises surprises dans un avenir proche il serait bon d'évoluer vers une version récente (5.20) ...

    Puisque tu n'as pas d'accès Internet à partir du serveur de prod, il me semble que le plus simple serait de télécharger une version source Unix/Linux à partir de ton poste.
    De la pousser sur le serveur de prod et de la compiler

    L'écart de version avec celle qui est installée, implique à mon avis un minimum de précautions, qui consisterait à faire cohabiter la v5.8.8 actuelle avec la nouvelle 5.20 SURTOUT si tu n'as pas la main sur TOUT l'existant Perl 5.8 tournant sur la machine...

    ATTENTION je l'ai fait en Windows mais pas récemment en Linux, donc ce qui suit est à faire avec précaution : save système avant de commencer...
    Et d'autres avis ici sur le forum !

    Il semble que l'installation de la 5.20 utilise une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./Configure -des -Dprefix=$HOME/localperl
    En remplaçant localperl par Perl5_20 par exemple, tu dois pouvoir préserver tout ce qui tourne actuellement, en installant la nouvelle version dans le répertoire spécifique Perl5_20, et pouvoir ainsi migrer l'existant (si nécessaire) après test, en jouant avec des variables d'environnement et/ou en utilisant les nouveaux path complets de la 5.20

    ATTENTION au $PATH de la machine de façon à ne pas mélanger l'utilisation des différentes versions des librairies Perl...

    [EDIT 12:00]
    D'autant que la sécurité nous interdit de faire des upgrades de Perl.
    A l'impossible, nul n'est tenu !
    S'ils ne veulent pas migrer, qu'ils résolvent le pb

    Je suis absent AM, de retour ce soir tard...

  7. #7
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2013
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 247
    Par défaut
    Citation Envoyé par dmganges Voir le message
    En leur faisant remarquer que la version 5.8 ou 5.10 est ancienne et que pour ne pas risquer de mauvaises surprises dans un avenir proche il serait bon d'évoluer vers une version récente (5.20) ...
    ben bon courage pour faire ce grand pas en avant...
    Citation Envoyé par dmganges Voir le message
    [EDIT 12:00]

    A l'impossible, nul n'est tenu !
    S'ils ne veulent pas migrer, qu'ils résolvent le pb
    Je pense plutôt que ça risque d'être: "On reste comme ça pour Perl car ça fonctionne et on veut pas tout casser et de votre côté vous vous débrouillez avec les modules natifs de Perl 5.8"

  8. #8
    Membre expérimenté
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Par défaut
    Merci a vous deux.

    Je vais regarder une montée de niveau de Perl de manière isolée afin de tester l'existant. Quand "a vous ne voulez pas monter de niveau c'est à vous de régler le problème" c'est malheureusement pas la philosophie de la boite dans laquelle je bosse.

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

Discussions similaires

  1. Trouver des modules-Code affreux cherche nettoyeur !
    Par rambc dans le forum Général Python
    Réponses: 2
    Dernier message: 09/07/2010, 19h16
  2. Où trouver le module mod_ssl.so?
    Par sandrillon_25 dans le forum Apache
    Réponses: 1
    Dernier message: 20/11/2007, 06h22
  3. Où trouver les modules et comment les installer ?
    Par Ecosmose dans le forum NetBeans
    Réponses: 17
    Dernier message: 01/06/2007, 18h37
  4. Ou trouver le module subversion ?
    Par n!co dans le forum NetBeans
    Réponses: 3
    Dernier message: 12/10/2006, 14h11
  5. [LDAP] Où trouver ce module PHP pour Windows
    Par hutchuck dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 16/11/2005, 08h57

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