从源代码安装perl 5.8+DBI/DBD
来源:互联网 发布:中国行政区域数据库 编辑:程序博客网 时间:2024/05/20 16:13
最近工作需要用perl访问oracle,因此需要在Sun服务器上安装perl DBI/DBD等pm包。服务器上的Solaris 9已经自带
环境:测试机是4 SPARC CPU/solaris 9 SUN服务器。由于不能连接外部网络,所以无法通过CPAN进行安装;而且我也没有root权限,因此也无法下载安装包进行pkgadd的安装。那就试试从source编译安装吧!
1. 从perl.org下载5.8 source。
对于perl,目前5.10的source还是testing的状态,所以稳定起见,选择状态是maint的5.8 发行版。
这一步有一点必须注意:从windows往solaris上ftp传送.gz包时一定要用binary模式,否则传上去的大小就会变化,少几个字节,而且用gunzip进行解压时,会报CRC error(冗余校验码错误)的错误。
2. 运行Configure的shell脚本。
按照提示一步一步进行设置编译环境(系统架构/操作系统/编译器等参数)和安装参数(安装目录等等)。设置完成后会生成Makefile。
如果你没有root权限,你可能对默认的安装路径没有写权限,这时应该设置成你有写权限的目录,例如你的userhome目录。
3. Make。
这一步是用你刚才设置好的编译环境进行编译。如果没有error,则表明你刚才第一步生成的makefile没有问题。
4. Make test。
测试你编译的程序,看看有没有问题。这一步耗时比较长,但为了以后不出问题,还是执行一下为好。一般情况这一步不太会出错。如果没有问题,就可以进行下一步的安装了。
5. Make install。
这一步将需要的文件安装都你在前面Configure时设置的安装目录。如果安装目录不存在,这一步将建立你指令的安装目录(前题是运行make的用户有权限)。安装完的版本应该是
6. 安装DBI
下载完DBI 1.607的代码后,顺序执行以下命令:
/path/to/new/perlMakefile.PL #这一步生成makefile,注意要使用新安装的perl!
make #编译连接,生成的二进制文件
Make test #测试生成的二进制文件
make install #安装到新的perl目录
第一步注意要使用新安装的perl!这样才会将DBI安装到新perl的@INC目录下。
这一步安装完之后最好能写一个连接数据库的程序测试一下,看新安装的perl能否识别DBI的函数了。当然这个程序肯定还会报类似“DBD missing”的错误,但这已经是运行时错误而不是编译错误了,这说明我们离胜利又近了一步,现在只剩下最后一步需要做:安装DBD for Oracle!
7. 安装DBD::Oracle
(1)下载DBD::Oracle 1.22的源码,进行编译
/path/to/new/perl Makefile.PL
(2)make
Makefile出现问题!!
Running Mkbootstrap for DBD::Oracle()
chmod 644 Oracle.bs
rm -fblib/arch/auto/DBD/Oracle/Oracle.so
LD_RUN_PATH="/opt/app/oracle9i/orabase/product/
/
ld: fatal: file cc: openfailed: No such file or directory
ld: fatal: File processingerrors. No output written to blib/arch/auto/DBD/Oracle/Oracle.so
*** Error code 1
make: Fatal error: Command failedfor target `blib/arch/auto/DBD/Oracle/Oracle.so'
编译报错提示的原因是生成的Makefile中的一个变量OTHERLDFLAGS:
OTHERLDFLAGS = cc -Xa -xstrconst -xF -xarch=v8-xchip=ultra -W2,-AKNR_S -W2,-Rglobal_hoist -Wc,-Qdelay-s
peculate-Wc,-Qdepgraph-safe_spec_load=3 -W2,-Rloop -errtags=yes -v -K PIC-L/opt/SUNWcluster/lib -R/opt/SUNW
cluster/lib -L/opt/app/oracle9i/orabase/product/
.7/lib32/ -lclntsh `cat/opt/app/oracle9i/orabase/product/9.2.0.7/lib32/ldflags` `cat /opt/app/oracle9i/or
abase/product/
at -lm -lthread
多出了“cc”。在Makefile中去掉它就可以正常编译了。这应该是一个bug。
(3)Make test。
t/10general.............DBIconnect('','scott/tiger',...) failed: ORA-12545: Connect failed because targethost or object does not exist (DBD ERROR: OCIServerAttach) at t/10general.tline 22
FAILED--Further testing stopped:Unable to connect to Oracle (ORA-12545: Connect failed because target host orobject does not exist (DBD ERROR: OCIServerAttach))
*** Error code 29
make: Fatal error: Command failedfor target `test_dynamic'
出现问题,因为test中并没不存在某个测试数据库进行测试,不用理会这个。
(4)make install
安装到新perl的@INC目录下。
至此你就可以用你的perl5.8访问oracle 9i了!
- 从源代码安装perl 5.8+DBI/DBD
- 从源代码安装perl 5.12.3+DBI/DBD
- perl 安装DBI和DBD
- perl 安装DBI,DBD操纵数据库
- Centos 安装perl DBI和mysql DBD
- mysqlreport ----Perl-安装DBI,Mysql DBD模块
- Perl中DBI、DBD::mysql模块的安装
- Perl中DBI、DBD::mysql模块的安装
- Perl中DBI和DBD-mysql模块的安装
- perl连接oracle,DBI,DBD,Data-ShowTable安装
- perl DBI模块和DBD-mysql模块安装
- perl 5.22手动安装Mysql DBI和DBD
- 安装DBI和DBD包
- ubuntu安装DBI,DBD-MYSQL
- centos 6.7 perl 版本 This is perl 5, version 22 安装DBI DBD
- Oracle Programming with Perl DBI / DBD
- perl DBI,DBD-mysql配置纲要
- 2011测试全记录(linux下安装perl的DBI和DBD)
- c++ const 约束符
- XP盗版变正版的方法
- Javascript在IE和FireFox中的不同表现
- BeyondTrack 项目构思
- WINFOR把一个网页保存成图片
- 从源代码安装perl 5.8+DBI/DBD
- jQuery Ajax 全解析
- IE6与IE7 浏览器可实现功能汇总
- 图示offsetWidth clientWidth scrollWidth scrollTop scrollLeft等属性的细微区别
- C# 2.0 套接字编程实例初探
- 告诉大家一种保护眼睛的好方法
- 正则表达式 . 格式
- 存储过程加C#类分页,高效率的分页,有谁想用进来看
- 事件对象