web-dev-qa-db-ja.com

DBI.pmが見つかりません

このスクリプトを起動しようとしています:

#!/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);

このスクリプトを起動すると、次のエラーが表示されます。

@INCでDBI.pmが見つかりません(@INCには/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。)at ./prova.pl line 3.

すべてインストールしました!! DBI.pmがインストールされています!!

18
chaw359

ルートがある場合は、コンソール(Debian/Ubuntu)を入力します。

Sudo apt-get install libdbi-Perl
32
Michu93

アクティブなPerlがない(したがってppmがない)場合は、次のようなDBIも取得できます。

Perl -MCPAN -e 'install DBI'

次のようなPostgresのドライバーをインストールする必要がある場合があります。

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

DBIは@INCパスにありません。これは、カスタムモジュールを探す場所をPerlに指示します。これはおそらく、cpanツールを非ルートユーザーとして使用してインストールしたため、デフォルトのインクルードパスへの書き込みアクセス権がないためです。

DBI.pmおよびその他のパッケージを見つけて、@INCパスに移動する必要があります。

または、インストールしたパッケージを見つけて、ライブラリパスにインストールパスを追加します。

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

さらに永続的な解決策として、これを~/.bashrcに追加します。

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

Redhat/centosユーザーの場合:

Sudo yum -y install Perl-DBI
2
Ankit Agarwal