扩展了Perl语言的功能。CPAN(Comprehensive Perl Archive Network)是internet上Perl模块
最大的集散地,包含了现今公布的几乎所有的perl模块。
在以下站点找到模块下载
我在这里介绍一下各种平台下perl模块的安装方法。以安装DBI模块为例。
1、Linux/Unix下的安装方法:
Linux/Unix下安装Perl模块有两种方法:手工安装和自动安装。第一种方法是从CPAN上下载
您需要的模块,手工编译、安装。第二种方法是联上internet,使用一个叫做CPAN的模块自动完
成下载、编译、安装的全过程。
a、手工安装的步骤:
从CPAN下载了DBI模块1.13版的压缩文件DBI-1.13.tar.gz,假设放在/usr/local/src/下。
cd /usr/local/src
解压缩这个文件:
tar xvzf DBI-1.13.tar.gz
这时会新建一个DBI-1.13的目录。
cd DBI-1.13
生成makefile:
perl Makefile.PL PREFIX=/usr/
建立模块
make
测试模块
make test
如果测试结果报告“all test ok”,您就可以放心地安装编译好的模块了。安装模块前,先要
确保您对perl5安装目录有可写权限(通常以su命令获得),执行:
make install
现在,写个程序试试吧。
#!/usr/bin/perl -w
use strict;
use DBI;
..
上述步骤适合于Linux/Unix下绝大多数的Perl模块。可能还有少数模块的安装方法略有差别,
所以最好先看看安装目录里的README或INSTALL。另外,上述过程是针对动态链接的Perl编译
器(所有Linux下预安装的Perl都是动态链接的),如果您在使用一个静态链接的Perl,您需要将
新的模块静态链接到perl编译器中,可能还需要重启机器。
b、使用CPAN模块自动安装:
安装前需要先联上线,并且您需要取得root权限。
perl -MCPAN -e shell 或者直接 cpan Moudle
初次运行CPAN时需要做一些设置,如果您的机器是直接与internet相联(拨号上网、专线,etc.),
那么一路回车就行了,只需要在最后选一个离您最近的CPAN镜像站点。例如我选的是位于国内的
中国自由软件库ftp://freesoft.cgi.gov.cn/pub/languages/perl/CPAN 。否则,如果您的机器
位于防火墙之后,还需要设置ftp代理或http代理。
获得帮助
cpan>h
列出CPAN上所有模块的列表
cpan>m /PATTAN/ ##显示匹配关键字的模块名称,没有大小写区分
安装模块
cpan>install DBI
自动完成DBI模块从下载到安装的全过程。
退出
cpan>q
从cpan中下载模块,安装时,出现的两类文件安装的方法
###############################perl Makefile.PL PREFIX=/Users/home/gingermakemake testmake installexport PERL5LIB=/Users/home/ginger##################################### ######################################perl Build.PL --install_base /Users/home/Gingerperl Buildperl Build testperl Build install######################################oracle
DBI只是个抽象层,要实现支持不同的数据库,则需要在DBI之下,编写针对不同数据库的驱动。对MySql来说,有DBD::Mysql, 而对来说,则是DBD::Oracle。其中的DBD这是DataBase Driver之简写。
所以总的体系结构如下所示:
应用(Application) -> DBI -> DBD -> DB
要连接不同类型的数据库,就得在应用所在主机上配置安装DBI以及相对应的DBD模块,关于DBI的配置,偶遇,大家全可拿来参考,我就不重新造轮子,安装顺序是先装DBI,再装DBD::Oracle。
DBD::Oracle模块不是Oracle官方开发的,而是由Pythian Group这个很有名的DBA咨询公司组织专人开发,目前的最新版本是1.22,主页在
接下来把如何安装DBD::Oracle的步骤罗列如下,供大家参考。
DBD::Oracle模块既可安装在有Oracle Database的主机上,也可以装在没有Oracle Database的主机上,后者需要安装Oracle Instant Client进行远程数据库连接,本文只关注第二种配置,即DBD::Oracle通过Instant Client实现数据库访问。
第一步: 下载Oracle Instant Client
shawn@shawn-laptop:/tmp/InstantClient$ls
instantclient-basic-linux32-11.1.0.7.zip
instantclient-sdk-linux32-11.1.0.7.zip
instantclient-sqlplus-linux32-11.1.0.7.zip
使用unzip命令在当前目录解压这三个zip文件,会自动生成instantclient_11_1目录,这里面包含了以上三个包里面的所有文件,解压后的目录结构:
shawn@shawn-laptop:/tmp/InstantClient$ls
instantclient_11_1
instantclient-basic-linux32-11.1.0.7.zip
instantclient-sdk-linux32-11.1.0.7.zip
instantclient-sqlplus-linux32-11.1.0.7.zip
这时候这三个zip文件已经没用,可以删之,也可供以后重用。
第二步:下载DBD::Oracle
DBD::Oracle在search.cpan.org的下载地址是,下载后随便放到某一目录,这里我放到/tmp,然后解压,如下:
shawn@shawn-laptop:/tmp$tar zxf DBD-Oracle-1.22.tar.gz
shawn@shawn-laptop:/tmp$cd DBD-Oracle-1.22
shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$ls
Changes Makefile.PL oraperl.ph README.login.txt
dbdimp.c MANIFEST Oraperl.pm README.longs.txt
[..省略部分屏幕输出..]
第三步:配置ORACLE_HOME环境变量
shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$export ORACLE_HOME=/tmp/InstantClient/instantclient_11_1
shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$echo $ORACLE_HOME
/tmp/InstantClient/instantclient_11_1
第四步:编译安装DBD::Oracle模块
shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$perl Makefile.PL
Using DBI 1.607 (for perl 5.008008 on i486-linux-gnu-thread-multi) installed in /usr/local/lib/perl/5.8.8/auto/DBI/
Configuring DBD::Oracle for perl 5.008008 on (i486-linux-gnu-thread-multi)
Remember to actually *READ* the README file! Especially if you have any problems.
Installing on a linux, Ver#2.6
Using Oracle in /tmp/InstantClient/instantclient_11_1
DEFINE _SQLPLUS_RELEASE = "1101000700" (CHAR)
Oracle version 11.1.0.7 (11.1)
Looks like an Instant Client installation, okay
[..省略部分屏幕输出..]
运行make
shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$make
cp Oracle.pm blib/lib/DBD/Oracle.pm
cp oraperl.ph blib/lib/oraperl.ph
cp dbdimp.h blib/arch/auto/DBD/Oracle/dbdimp.h
I/Driver.xst > Oracle.xsi
[..省略部分屏幕输出..]
然后切换成root用户make install
shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$su
Password:
root@shawn-laptop:/tmp/DBD-Oracle-1.22#make install
[..省略部分屏幕输出..]
至此,DBD::Oracle配置安装完毕,用户可以使用此模块连接Oracle进行相应的操作,幸运的是,DBD::Oracle的现有维护者John Scoles写了一篇极其精彩的文档,名叫 《》, 指导用户如何使用此模块,有心的读者千万不要错过!