簡體   English   中英

關於Perl DBD :: Oracle安裝在本地目錄中

[英]Regarding Perl DBD::Oracle installation in local directory

  1. 我想從solaris servier中的perl腳本連接oracle數據庫。 能夠看到DBI已安裝但當前的perl版本5.8.4中沒有安裝DBD :: Oracle。 我沒有根訪問並且正在處理我的家庭用戶ID。 下載DBD-Oracle-1.50並在我的perl腳本所在的本地目錄中解壓縮。 我想將DBD Oracle庫文件復制到自定義目錄並運行腳本,因為我沒有root訪問權限。 當我在DBD-Oracle-1.50中讀取安裝腳本時,它表示對於manuall install我需要運行以下腳本。 由於我沒有root訪問權限,我想將庫模塊復制到本地目錄中。 不知道如何告訴這些腳本將其安裝在我的perl腳本所在的本地目錄中。

  2. 在我的用戶標識下的自定義目錄中安裝DBI和DBD是否可以正常工作。 這些模塊是否需要root訪問才能正常工作? 要使用DBD :: Oracle,需要在服務器中安裝oracle。 我的理解Oracle驅動程序DBD :: Oracle應該處理它。

  perl Makefile.PL make && make test make install > ls -tlr /usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int total 956 > -rwxr-xr-x 1 root bin 15161 Mar 26 2005 Roadmap.pod > -rwxr-xr-x 1 root bin 1048 Sep 5 2006 TASKS.pod > -rwxr-xr-x 1 root bin 289343 Jun 26 2007 DBI.pm > -rwxr-xr-x 1 root bin 4608 Jun 12 2008 goferperf.pl > -rwxr-xr-x 1 root bin 1356 Jun 12 2008 dbixs_rev.pl > -rwxr-xr-x 1 root bin 58386 Apr 3 2010 SNMP.pm drwxr-xr-x 3 root bin 7 Oct 13 2010 NetSNMP > drwxr-xr-x 2 root bin 3 Oct 13 2010 Win32 drwxr-xr-x > 8 root bin 19 Oct 13 2010 DBI drwxr-xr-x 2 root > bin 4 Oct 13 2010 Bundle drwxr-xr-x 6 root other > 6 Oct 13 2010 auto drwxr-xr-x 3 root bin 11 Oct 13 > 2010 DBD > > ls -ltr /usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int/DBD total 543 > -rwxr-xr-x 1 root bin 111586 May 6 2006 Pg.pm > -rwxr-xr-x 1 root bin 28785 Sep 27 2006 Proxy.pm > -rwxr-xr-x 1 root bin 7937 Jan 25 2007 Sponge.pm > -rwxr-xr-x 1 root bin 42836 Feb 6 2007 DBM.pm > -rwxr-xr-x 1 root bin 19882 Mar 28 2007 File.pm > -rwxr-xr-x 1 root bin 12051 May 10 2007 ExampleP.pm > -rwxr-xr-x 1 root bin 43586 May 14 2007 Gofer.pm > -rwxr-xr-x 1 root bin 3761 Jun 15 2007 NullP.pm drwxr-xr-x 4 root bin 4 Oct 13 2010 Gofer 

如果已安裝DBI,則只需要安裝DBD :: Oracle,但您可能需要安裝更高版本的DBI。 您可以在主目錄下安裝DBD :: Oracle,然后將PERL5LIB環境變量設置為該目錄(或包含該目錄)。 安裝的漫長道路是:

perl Makefile.PL PREFIX=~/perl #Or whatever sub-directory you like
make
make test
make install

然后在運行程序之前在PERL5LIB中包含至少“〜/ perl / lib;〜/ perl / lib / site_perl”(或在程序中包含“use lib”)。

您還可以設置某些環境變量,如PERL_MM_OPT和PERL_MB_OPT,這樣您就不必在命令行上指定PREFIX =(請參閱ExtUtils :: MakeMaker和Module :: Build的文檔)。 我還建議使用cpanm並將PERL_CPANM_HOME設置為主目錄下的某些內容。

Perl模塊可以很好地安裝在自定義目錄中。 當您沒有root權限來安裝PM時,通常會出現這種情況。 在自定義文件夾中安裝DBIDBD ,有幾種不同的方法可以確保perl知道此安裝。

1.設置環境變量PERL5LIB

在查看標准庫和當前目錄之前,Perl將在PERL5LIB環境變量中指定的目錄中查找模塊,因此您可以設置此變量來定位模塊。

語法與PATH環境變量使用的語法相同,因此在unix上使用冒號分隔目錄,在Windows上使用分號分隔目錄。

例:

# unix, bourne shell
PERL5LIB=/home/path/lib:/usr/another/path/lib; export PERL5LIB

請注意,使用-T選項運行的腳本(污點檢查)不使用該變量,因此在這種情況下,此選項將不起作用。

2.使用'-I'命令行參數

語法應該類似於:

perl -I /home/path/lib -I /usr/another/lib script.pl

3.在腳本中添加庫路徑

在腳本中包含路徑的命令是:使用lib“path”。 請注意,此語句預先設置@INC數組的“路徑”,因此它與unshift @INC,“path”基本相同

Example:

#!/usr/bin/perl
use lib "/home/path/lib";
use lib "/usr/another/lib";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM