Perl Can';t定位DBI.pm

Perl Can';t定位DBI.pm,perl,perl-module,Perl,Perl Module,我正在尝试启动此脚本: #!/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_i

我正在尝试启动此脚本:

#!/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/5.8.3/opt/perl_32/lib/site_perl/site_perl/perl/site_perl/opt/opt/5.8/opt/opt/perl/5.8.3/perl/perl供应商_perl/5.8.3/IA64.3/IA64.ARCHREV/perl供应商。)在./prova.pl第3行


我已经安装了所有模块!DBI.pm已安装!

DBI不在您的
@INC
路径中,该路径告诉perl在何处查找自定义模块。这可能是因为您使用
cpan
工具以非根用户身份安装了它们,而非根用户将没有对默认包含路径的写入权限

您需要找到
DBI.pm
和其他包,并将它们移动到您的
@INC
路径中

或者,查找已安装的软件包并将安装路径添加到库路径中,一次性使用:

PERL5LIB=/path/to/modules perl yourscript.pl
要获得更持久的解决方案,请将此添加到
~/.bashrc

export PERL5LIB=/path/to/modules

如果您没有活动的perl(因此也没有ppm),您还可以获得如下DBI:

perl -MCPAN -e 'install DBI'
perl -MCPAN -e 'install DBD::Pg'
您可能需要为Postgres安装如下驱动程序:

perl -MCPAN -e 'install DBI'
perl -MCPAN -e 'install DBD::Pg'

如果您有root用户,请在控制台(Debian/Ubuntu)中键入:


对于redhat/centos用户:

sudo yum -y install perl-DBI

对于alpine用户,请使用:
apk add perl dbi

如果您安装了它,您可以使用/为不同的
perl
安装它,或者您指示perl将其安装到非标准目录,但您没有告诉
perl
查看该目录。1)您是如何安装的?2) 到
DBI.pm
的完整路径是什么?请尝试命令
perldoc-ldl DBI
。如果安装了DBI.pm并且位于Perl的Include路径中,您将看到安装的位置。您的系统上可能安装了多个PERL,您可能访问了错误的PERL。你的shebang系列怎么样?我使用
#/usr/bin/env perl
获取路径使用的perl版本,我用来处理多个Perl版本。它安装在上面错误消息中列出的目录中的哪个目录中?我如何找到DBI包的路径?@chaw359
find/-name'DBI.pm'2>/dev/null
可以在类UNIX操作系统上进行安装。@chaw359-您是如何安装的?我必须在哪里使用它“PERL5LIB=/path/to/modules perl yourscript.pl”?在代码中还是unix的命令?请给我举个例子:D@chaw359当您运行脚本时,这将在命令行上。谢谢,它可以工作!但是,我必须使用“sudo”运行它,因为我没有足够的权限。我使用“sudo perl-MCPAN-e'install DBI”安装了它。