Chinaunix首页 | 论坛 | 博客
  • 博客访问: 383365
  • 博文数量: 117
  • 博客积分: 4416
  • 博客等级: 上校
  • 技术积分: 1135
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-08 14:16
个人简介

一生醉生忘死,就让他继续下去吧!

文章分类

全部博文(117)

分类: LINUX

2009-07-05 15:35:46

扩展了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

Oracle Instant Client的主页在  ; 秉承了Oracle公司的一贯做法,同一按配置分成了不同的可下载包,让用户可以按照自己的需求,找到最合适的部分下载。要成功配置DBD::Oracle, 需要Basic,SQL*Plus,SDK这三个配置,读者需要把这三个包下载并放到同一目录,如下所示为我已经下载的三个包,版本是当前最新的11.1.0.7

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

这个时候,我们可以使用PERL自带的CPAN进行自动安装,也可以手动下载此模块,编译安装,此文采用后者。
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环境变量

如果安装了Oracle Database软件,这个ORACLE_HOME就是安装oracle时所设值。在只安装Instant Client的情形下,此值设为第一步中instantclient_11_1目录的绝对路径,如下:

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模块

首先是使用PERL的Makefile.PL来生成makefile

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写了一篇极其精彩的文档,名叫 《》, 指导用户如何使用此模块,有心的读者千万不要错过!

阅读(2575) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~