web-dev-qa-db-fra.com

Impossible de localiser DBI.pm

J'essaie de lancer ce script:

#!/usr/bin/Perl 

use DBI;

my $dbh = DBI->connect( 'dbi:Oracle:Host=lonlin2;sid=TIMFX1AD;port=1524','xbsesdbo','xbsesdbo123' )  || die ( $DBI::errstr . "\n" );

my $query= "SELECT * FROM product_elements WHERE element_id = 1001";
my $queryHandler= $dbh->prepare($query);

my $result= $queryHandler->execute();


open(fileHandler,"> note.txt");

print fileHandler "Risultato query: $result\n";

my $e= $dbh->disconnect();
close(fileHandler);

Lorsque je lance ce script, je reçois cette erreur:

Impossible de localiser DBI.pm dans @INC (@INC contient: /opt/Perl_32/lib/5.8.3/IA64.ARCHREV_0-thread-multi /opt/Perl_32/lib/5.8.3/opt/Perl_32/lib/site_Perl/5.8.3/IA64.ARCHREV_0-thread-multi /opt/Perl_32/lib/site_Perl/5.8.3/opt/Perl_32/lib/site_Perl /opt/Perl_32/lib/vendor_Perl/5.8.3/IA64.ARCHREV_0- thread-multi /opt/Perl_32/lib/vendor_Perl/5.8.3/opt/Perl_32/lib/vendor_Perl.) sur ./prova.pl ligne 3.

J'ai tout installé !! DBI.pm est installé !!

18
chaw359

Si vous avez root, tapez console (Debian/Ubuntu):

Sudo apt-get install libdbi-Perl
32
Michu93

Si vous n'avez pas de Perl actif (et donc pas de ppm), vous pouvez également obtenir DBI comme ceci:

Perl -MCPAN -e 'install DBI'

Vous devrez peut-être installer des pilotes pour Postgres comme ceci:

Perl -MCPAN -e 'install DBD::Pg'
6
user216268

DBI n'est pas dans votre @INC path, qui indique à Perl où chercher les modules personnalisés. C'est probablement parce que vous les avez installés à l'aide de l'outil cpan en tant qu'utilisateur non root, qui n'aura pas accès en écriture aux chemins d'inclusion par défaut.

Vous devrez localiser DBI.pm et d'autres packages, et déplacez-les dans votre @INC chemin.

Sinon, recherchez les packages que vous avez installés et ajoutez le chemin d'installation dans le chemin de votre bibliothèque, pour une utilisation unique:

Perl5LIB=/path/to/modules Perl yourscript.pl

Et pour une solution plus permanente, ajoutez ceci à ~/.bashrc:

export Perl5LIB=/path/to/modules
2
Glitch Desire

Pour les utilisateurs de redhat/centos:

Sudo yum -y install Perl-DBI
2
Ankit Agarwal