2013-06-12 1 views
0

J'essaie d'utiliser le module SFTP en Perl. Mon code ressemble aime ça: Problèmes d'utilisation du module Perl SFTP

#!/usr/local/bin/perl5 

use lib "/some_path/Net-SFTP-0.10/lib"; 
use lib "/some_path/Net-SSH-Perl-1.25/lib"; 
use lib "/some_path/Math-Pari-2.010709"; 

use Net::SFTP; 

Je reçois cette erreur lors de l'exécuter:

Can't locate Math/Pari.pm in @INC 

Le répertoire Math-Pari-2,010709 contient le Pari.pm. Je n'ai pas l'autorisation de créer un répertoire Math et d'y placer le fichier Pari.pm. Que puis-je faire pour résoudre ce problème?

+2

Êtes-vous vraiment sûr de ne pas vouloir installer correctement vos modules? Je vois que 'Math :: Pari' inclut des fichiers' .xs', donc une étape de compilation semblerait bénéfique. – amon

+1

Cela devrait résumer pour vous [ici] (http://stackoverflow.com/questions/16423392/perl-cant-locate-loadable-object-for-module-mathpari-in-inc). – chrsblck

+2

Je suppose que vous n'avez aucun contrôle sur ce système. Est-ce un serveur? Pouvez-vous demander à votre service informatique d'installer NET :: SFTP et Net :: SSH pour vous? Jetez un coup d'œil à [Net :: SFTP :: Foreign] (http://search.cpan.org/~salva/Net-SFTP-Foreign-1.75/lib/Net/SFTP/Foreign.pm) et [Net :: SFTP :: Foreign :: Compat] (http://search.cpan.org/~salva/Net-SFTP-Foreign-1.75/lib/Net/SFTP/Foreign/Compat.pm). Ceux-ci peuvent fournir tout ce dont vous avez besoin et nécessitent moins de modules. –

Répondre

2

J'utilise local::lib et mis $PERL5LIB à $HOME/perl5 afin construction et l'installation des modules manquants est assez facile:

% cpanm Math::Pari 
--> Working on Math::Pari 
Fetching http://www.cpan.org/authors/id/I/IL/ILYAZ/modules/Math-Pari-2.01080605.tar.gz ... OK 
Configuring Math-Pari-2.01080605 ... OK 
Building and testing Math-Pari-2.01080605 ... 
Successfully installed Math-Pari-2.01080605 
1 distribution installed 

Vous devez installer App::cpanminus en suivant les instructions à https://github.com/miyagawa/cpanminus qui, essentiellement, sont:

curl -L http://cpanmin.us | perl - App::cpanminus 

Après cela avec cpanm dans votre $PATH (le voici en $HOME/perl5/bin) instal ling modules dans votre répertoire $ HOME est un jeu d'enfant.

+1

Votre prochaine étape est de commencer à utiliser ['' 'perlbrew'''] (http://www.perlbrew.pl) et de séparer plus complètement l'installation de votre système perl de votre environnement de développement. –

+0

Faites très attention à recommander 'perlbrew', sinon l'OP risque de ne plus fonctionner. Si cette machine est un serveur de production, l'installation d'une seconde version de Perl pourrait constituer une violation de la politique informatique de l'OP. Je travaille pour de grandes institutions financières, et ils ont beaucoup d'exigences légales à respecter et de nombreuses vérifications à faire. Une installation exécutable non approuvée provoquera l'alarme. –

+0

David, point pris mais '' 'perlbrew, cpanm''' et * local to user * - pas les installations de niveau système - sont un moyen d'isoler les applications de niveau système des environnements de test et de développement sur * tout * système. En outre, quiconque installe des modules Perl sur un équipement de production en direct ne travaille probablement pas sur les ressources informatiques de base d'une banque. Si tel était le cas, ils auraient des environnements de test isolés dupliqués exacts et n'installeraient pas SFTP (!) À partir du CPAN. –

2

Suite aux commentaires, j'ai fini par utiliser Net::SFTP::Foreign. Il suffit de faire les choses, et moins de dépendances m'ont rendu la vie plus facile. Merci pour votre aide!

Questions connexes