简体   繁体   English

使用Solaris 11 64位安装CGI,DBI和DBD :: Oracle

[英]Installing CGI, DBI and DBD::Oracle with Solaris 11 64-bit

I tried to install CGI , DBI and DBD::Oracle and drivers in a 64-bit Solaris environment, but to little avail. 我试图在64位Solaris环境中安装CGIDBIDBD :: Oracle和驱动程序,但收效甚微。 The number of errors I have encountered is mind-boggling and the number of workaround solutions I have tried - from changing environment variables, changing directory references, moving and copying files, changing compilers, etc. - is even worse. 我遇到的错误数量令人难以置信,而我尝试过的解决方法(从更改环境变量,更改目录引用,移动和复制文件,更改编译器等)的数量甚至更糟。 And the worst part is that there is very little documentation for installing said modules in the newest version of Solaris. 最糟糕的是,在最新版本的Solaris中安装上述模块的文档很少。

Here are the initial steps we have been going through. 这是我们正在经历的初始步骤。

  1. First we go to http://search.cpan.org/ . 首先,我们转到http://search.cpan.org/ Then we download: 然后我们下载:

  2. Next we open up a terminal window, switch to root, then navigate to our "Downloads" folder. 接下来,我们打开一个终端窗口,切换到根目录,然后导航到我们的“下载”文件夹。

  3. From here we decompress the previously downloaded files (no problems here): 从这里我们解压缩以前下载的文件(这里没有问题):

     gunzip -c CGI.pm-3.59.tar.gz |tar xvf - gunzip -c DBI-1.621.tar.gz |tar xvf - gunzip -c DBD-Oracle-1.44.tar.gz |tar xvf - 
  4. Then we archive the tar files in case we might need them later on. 然后我们存档tar文件,以防日后需要它们时使用。

     mkdir archive_tar mv *.gz $HOME/Downloads/archive_tar 
  5. Here is where it gets slightly confusing, as we are not sure if these steps are completely necessary. 这是一个令人困惑的地方,因为我们不确定这些步骤是否完全必要。 Basically, we believe we need to set up the correct Perl (64-bit required for the newest Oracle, default Perl used is 32-bit). 基本上,我们认为我们需要设置正确的Perl(最新的Oracle需要64位,使用的默认Perl是32位)。

    1. Type which perl in order to determine which current version of Perl you are using. 键入which perl以确定您正在使用哪个当前版本的Perl。 It should indicate you are using the default version (or 32-bit). 它应该表明您正在使用默认版本(或32位)。
    2. Verify that you have a 64-bit Perl installation available by doing the following: type file /opt/oracle/rdbms/perl/bin/perl 通过执行以下操作来验证您具有64位Perl安装:键入file /opt/oracle/rdbms/perl/bin/perl
    3. You should see ELF 64-bit LSB executable AMD64 Version 1 [SSE2 SSE FXSR CMOV FPU], dynamically linked, not stripped< . 您应该看到ELF 64-bit LSB executable AMD64 Version 1 [SSE2 SSE FXSR CMOV FPU], dynamically linked, not stripped<
    4. Switch to using this version of Perl by adding it to the PATH variable: export PATH=/opt/oracle/rdbms/perl/bin:$PATH 通过将其添加到PATH变量来切换到使用此版本的Perl: export PATH=/opt/oracle/rdbms/perl/bin:$PATH
    5. Type which perl . 输入which perl Verify that this now shows the Perl located at opt/oracle/rdbms/perl/bin/perl . 验证现在是否显示了位于opt/oracle/rdbms/perl/bin/perl
    6. Type perl -V , if it shows errors, set the variables below: 输入perl -V ,如果显示错误,请设置以下变量:

       export PERL5LIB=/opt/oracle/rdbms/perl/lib/5.10.0 export PERLLIB=/opt/oracle/rdbms/perl/lib/5.10.0 
  6. Now we set up cc (the compiler) to work so that we can install CGI/DBI/DBD-Oracle. 现在,我们将cc (编译器)设置为可以运行,以便可以安装CGI / DBI / DBD-Oracle。

    1. Type cc --version to verify that it says cc is not found. 键入cc --version以验证是否显示cc
    2. Open up a browser and navigate to Solaris Studio . 打开浏览器并导航到Solaris Studio Here you will find a package which contains Sun's compiler. 在这里,您将找到一个包含Sun编译器的软件包。
    3. Download "Tarfile on Solaris SPARC" for the Solaris 11 OS Platform. 下载适用于Solaris 11 OS平台的“ Solaris SPARC上的Tarfile”。
    4. In your terminal window, decompress the above file by typing: bzcat SolarisStudio12.3-solaris-sparc-bin.tar.bz2 | tar xf - 在终端窗口中,通过键入以下内容来解压缩上述文件: bzcat SolarisStudio12.3-solaris-sparc-bin.tar.bz2 | tar xf - bzcat SolarisStudio12.3-solaris-sparc-bin.tar.bz2 | tar xf -
    5. Move the .bz2 file to our previously created archive folder: mv SolarisStudio12.3-solaris-sparc-bin.tar.bz2 $HOME/Downloads/archive_tar .bz2文件移动到我们先前创建的归档文件夹中: mv SolarisStudio12.3-solaris-sparc-bin.tar.bz2 $HOME/Downloads/archive_tar
    6. Now we want to add the new compiler to our path, we do this through: export PATH=$PATH:/home/oracle/Downloads/SolarisStudio12.3-solaris-sparc-bin/solarisstudio12.3/bin 现在,我们想将新的编译器添加到我们的路径中,我们可以通过以下步骤进行操作: export PATH=$PATH:/home/oracle/Downloads/SolarisStudio12.3-solaris-sparc-bin/solarisstudio12.3/bin
    7. Type cc --version , this command shouldn't do anything (possibly throw a few warnings), but it won't say cc not found anymore. 键入cc --version ,此命令不应执行任何操作(可能会发出一些警告),但不会说cc not found了。
  7. Here we begin to install the modules and the driver, starting with the CGI module: 在这里,我们从CGI模块开始安装模块和驱动程序:

    1. Navigate to $HOME/Downloads/CGI.pm-3.59 导航到$HOME/Downloads/CGI.pm-3.59
    2. Type perl Makefile.PL 键入perl Makefile.PL
    3. We need to change the make file to point to the correct location. 我们需要更改make文件以指向正确的位置。

      1. Type vi Makefile 输入vi Makefile
      2. :%s,../lib/site_perl/5.10.0,/opt/oracle/rdbms/perl/lib/site_perl/5.10.0,g
      3. :%s,../lib/5.10.0,/opt/oracle/rdbms/perl/lib/5.10.0,g
    4. Now type make 现在输入make

    5. Then type make install 然后输入make install
    6. Next we move onto the DBI module. 接下来,我们进入DBI模块。 Navigate to $HOME/Downloads/DBI-1.621 . 导航至$HOME/Downloads/DBI-1.621
    7. Type perl Makefile.PL 键入perl Makefile.PL
    8. Again, we need to change this make file to point to the correct location. 同样,我们需要更改此make文件以指向正确的位置。

      1. Type vi Makefile 输入vi Makefile
      2. :%s,../lib/site_perl/5.10.0,/opt/oracle/rdbms/perl/lib/site_perl/5.10.0,g
      3. :%s,../lib/5.10.0,/opt/oracle/rdbms/perl/lib/5.10.0,g
    9. However, these change two lines that we don't want to change. 但是,这些更改更改了我们不想更改的两行。 So do a find for MAKEMAKER and XSUBPPDIR and set them back to the below values. 因此,对MAKEMAKERXSUBPPDIR进行查找,并将它们重新设置为以下值。

       MAKEMAKER = /opt/oracle/rdbms/perl/lib/5.10.0/ExtUtils/MakeMaker.pm XSUBPPDIR = /opt/oracle/rdbms/perl/lib/5.10.0/ExtUtils 
    10. Now type make 现在输入make

    11. Then type make install 然后输入make install
    12. Now navigate to $HOME/Downloads/DBD-Oracle-1.44 现在导航至$HOME/Downloads/DBD-Oracle-1.44
    13. Type perl Makefile.PL 键入perl Makefile.PL

And that is basically where we get a fatal error at line 21, use DBI 1.51; 基本上,这是在第21行出现致命错误的地方, use DBI 1.51; in the Makefile, and tracing up the stack indicates that @INC cannot locate DBI.pm . 在Makefile中,并跟踪堆栈表明@INC无法找到DBI.pm That is why I tried to move the binary library file. 这就是为什么我尝试移动二进制库文件的原因。 I can't access the Solaris box at this moment so I can't re-post the exact error code, I should be able to include that probably Tuesday (the earliest I can get back to the machine). 目前,我无法访问Solaris框,因此无法重新发布确切的错误代码,我应该能够在星期二添加该错误代码(最早我可以返回到计算机)。 Does anyone have any ideas to this point though? 有人对此有任何想法吗?

alternative route using CPAN shell 使用CPAN Shell的替代路线

  1. Open up a terminal window and install the following packages as the root user: 打开一个终端窗口,并以root用户身份安装以下软件包:

     pkg install system/header pkg install gcc-45 pkg install developer/build/gnu-make pkg install archiver/gnu-tar 
  2. Navigate to $oracle_home cd $oracle_home and: 导航至$ oracle_home cd $oracle_home并:

     mkdir /apps mkdir /apps/twiki-root mkdir /apps/twiki-root/perlmodules 
  3. Modify the PERL5LIB environment variable: 修改PERL5LIB环境变量:

    • export PERL5LIB=/apps/twiki-root/perlmodules
    • Verify by typing: echo $PERL5LIB 通过键入验证: echo $PERL5LIB
  4. Open up the CPAN shell and update it: 打开CPAN shell并更新它:

     /usr/perl5/bin/perlgcc -MCPAN -e shell 

    If this is the first time, press return to accept auto-configuration. 如果是第一次,请按return键接受自动配置。 And now enter the following commands to modify the mirror location for CPAN: 现在,输入以下命令来修改CPAN的镜像位置:

     o conf urllist shift o conf urllist o conf urllist unshift http://mirror.ox.ac.uk/sites/www.cpan.org/ o conf urllist o conf commit install Bundle::CPAN reload cpan 
  5. Open up the Config.pm file and modify it as described below: 打开Config.pm文件并按如下所述对其进行修改:

     cd /usr/perl5/5.12/lib/CPAN/ vi Config.pm 

    Modify these values: 修改这些值:

     'make' => q[/usr/sfw/bin/gmake], 'make_install_make_command' => q[/usr/sfw/bin/gmake], 'makepl_arg' => q[LIB=/apps/twiki-root/perlmodules PREFIX=/apps/twiki-root/perlmodules INSTALLMAN3DIR=/apps/twiki-root/perlmodules/man/man3], 'mbuild_arg' => q[--install_base /apps/twiki-root/perlmodules], 'mbuild_install_arg' => q[--install_base /apps/twiki-root/perlmodules], 'mbuildpl_arg' => q[--install_base /apps/twiki-root/perlmodules], 'prefs_dir' => q[~/.cpan/prefs], 'tar' => q[/usr/sfw/bin/gtar], 

    Write/save to the file and quit → :wq 写入/保存到文件并退出→ :wq

  6. Make sure that your gcc is set: 确保已设置您的gcc

    Verify by: which gcc 验证人: which gcc

  7. Now once again open up the CPAN shell and begin to install the DBI module. 现在再次打开CPAN Shell,开始安装DBI模块。

     /usr/perl5/bin/perlgcc -MCPAN -e shell install DBI 

And this is where everything just goes to crap. 这就是一切都变得rap废的地方。 Error: 错误:

Reading '/home/oracle/.cpan/Metadata'
Database was generated on Sun, 03 Jun 2012 22:27:03 GMT
Running install for module 'DBI'
Running make for T/TI/TIMB/DBI-1.621.tar.gz
Subroutine config redefined at /usr/perl5/5.12/lib/CPAN/LWP/UserAgent.pm line 12.
Subroutine get_basic_credentials redefined at /usr/perl5/5.12/lib/CPAN/LWP/UserAgent.pm line 23.
Subroutine no_proxy redefined at /usr/perl5/5.12/lib/CPAN/LWP/UserAgent.pm line 32.
Subroutine mirror redefined at /usr/perl5/5.12/lib/CPAN/LWP/UserAgent.pm line 67.
Fetching with HTTP::Tiny:
http://mirror.ox.ac.uk/sites/www.cpan.org/authors/id/T/TI/TIMB/DBI-1.621.tar.gz
Fetching with HTTP::Tiny:
http://mirror.ox.ac.uk/sites/www.cpan.org/authors/id/T/TI/TIMB/CHECKSUMS
Checksum for /home/oracle/.cpan/sources/authors/id/T/TI/TIMB/DBI-1.621.tar.gz ok
Scanning cache /home/oracle/.cpan/build for sizes
............................................................................DONE

CPAN.pm: Building T/TI/TIMB/DBI-1.621.tar.gz


*** Your LANG environment variable is set to 'en_US.UTF-8'
*** This may cause problems for some perl installations.
*** If you get test failures, please try again with LANG unset.
*** If that then works, please email dbi-dev@perl.org with details
*** including the output of 'perl -V'

Creating test wrappers for DBD::Gofer:
t/zvg_01basics.t
t/zvg_02dbidrv.t
t/zvg_03handle.t
t/zvg_04mods.t
t/zvg_05concathash.t
t/zvg_06attrs.t
t/zvg_07kids.t
t/zvg_08keeperr.t
t/zvg_09trace.t
t/zvg_10examp.t
t/zvg_11fetch.t
t/zvg_12quote.t
t/zvg_13taint.t
t/zvg_14utf8.t
t/zvg_15array.t
t/zvg_16destroy.t
t/zvg_19fhtrace.t
t/zvg_20meta.t
t/zvg_30subclass.t
t/zvg_31methcache.t
t/zvg_35thrclone.t
t/zvg_40profile.t
t/zvg_41prof_dump.t
t/zvg_42prof_data.t
t/zvg_43prof_env.t
t/zvg_48dbi_dbd_sqlengine.t
t/zvg_49dbd_file.t
t/zvg_50dbm_simple.t
t/zvg_51dbm_file.t
t/zvg_52dbm_complex.t
t/zvg_60preparse.t
t/zvg_65transact.t
t/zvg_70callbacks.t
t/zvg_72childhandles.t
t/zvg_80proxy.t
t/zvg_85gofer.t
t/zvg_86gofer_fail.t
t/zvg_87gofer_cache.t
t/zvg_90sql_type_cast.t
Creating test wrappers for DBI::SQL::Nano:
t/zvn_48dbi_dbd_sqlengine.t
t/zvn_49dbd_file.t
t/zvn_50dbm_simple.t
t/zvn_51dbm_file.t
t/zvn_52dbm_complex.t
t/zvn_85gofer.t
Creating test wrappers for DBI::PurePerl:
t/zvp_01basics.t
t/zvp_02dbidrv.t
t/zvp_03handle.t
t/zvp_04mods.t
t/zvp_05concathash.t
t/zvp_06attrs.t
t/zvp_07kids.t
t/zvp_08keeperr.t
t/zvp_09trace.t
t/zvp_10examp.t
t/zvp_11fetch.t
t/zvp_12quote.t
t/zvp_13taint.t
t/zvp_14utf8.t
t/zvp_15array.t
t/zvp_16destroy.t
t/zvp_19fhtrace.t
t/zvp_20meta.t
t/zvp_30subclass.t
t/zvp_31methcache.t
t/zvp_35thrclone.t
t/zvp_40profile.t
t/zvp_41prof_dump.t
t/zvp_42prof_data.t
t/zvp_43prof_env.t
t/zvp_48dbi_dbd_sqlengine.t
t/zvp_49dbd_file.t
t/zvp_50dbm_simple.t
t/zvp_51dbm_file.t
t/zvp_52dbm_complex.t
t/zvp_60preparse.t
t/zvp_65transact.t
t/zvp_70callbacks.t
t/zvp_72childhandles.t
t/zvp_80proxy.t
t/zvp_85gofer.t
t/zvp_86gofer_fail.t
t/zvp_87gofer_cache.t
t/zvp_90sql_type_cast.t
Creating test wrappers for DBD::Gofer + DBI::SQL::Nano:
t/zvxgn_48dbi_dbd_sqlengine.t
t/zvxgn_49dbd_file.t
t/zvxgn_50dbm_simple.t
t/zvxgn_51dbm_file.t
t/zvxgn_52dbm_complex.t
t/zvxgn_85gofer.t
Creating test wrappers for DBD::Gofer + DBI::PurePerl:
t/zvxgp_01basics.t
t/zvxgp_02dbidrv.t
t/zvxgp_03handle.t
t/zvxgp_04mods.t
t/zvxgp_05concathash.t
t/zvxgp_06attrs.t
t/zvxgp_07kids.t
t/zvxgp_08keeperr.t
t/zvxgp_09trace.t
t/zvxgp_10examp.t
t/zvxgp_11fetch.t
t/zvxgp_12quote.t
t/zvxgp_13taint.t
t/zvxgp_14utf8.t
t/zvxgp_15array.t
t/zvxgp_16destroy.t
t/zvxgp_19fhtrace.t
t/zvxgp_20meta.t
t/zvxgp_30subclass.t
t/zvxgp_31methcache.t
t/zvxgp_35thrclone.t
t/zvxgp_40profile.t
t/zvxgp_41prof_dump.t
t/zvxgp_42prof_data.t
t/zvxgp_43prof_env.t
t/zvxgp_48dbi_dbd_sqlengine.t
t/zvxgp_49dbd_file.t
t/zvxgp_50dbm_simple.t
t/zvxgp_51dbm_file.t
t/zvxgp_52dbm_complex.t
t/zvxgp_60preparse.t
t/zvxgp_65transact.t
t/zvxgp_70callbacks.t
t/zvxgp_72childhandles.t
t/zvxgp_80proxy.t
t/zvxgp_85gofer.t
t/zvxgp_86gofer_fail.t
t/zvxgp_87gofer_cache.t
t/zvxgp_90sql_type_cast.t
Creating test wrappers for DBI::SQL::Nano + DBI::PurePerl:
t/zvxnp_48dbi_dbd_sqlengine.t
t/zvxnp_49dbd_file.t
t/zvxnp_50dbm_simple.t
t/zvxnp_51dbm_file.t
t/zvxnp_52dbm_complex.t
t/zvxnp_85gofer.t
Creating test wrappers for DBD::Gofer + DBI::SQL::Nano + DBI::PurePerl:
t/zvxgnp_48dbi_dbd_sqlengine.t
t/zvxgnp_49dbd_file.t
t/zvxgnp_50dbm_simple.t
t/zvxgnp_51dbm_file.t
t/zvxgnp_52dbm_complex.t
t/zvxgnp_85gofer.t
Checking if your kit is complete...
Looks good
Have /usr/perl5/5.12/lib/Sun/Solaris/PerlGcc
Want /usr/perl5/5.12/lib/i86pc-solaris-64int
Your perl and your Config.pm seem to have different ideas about the
architecture they are running on.
Perl thinks: [PerlGcc]
Config says: [i86pc-solaris-64int]
This may or may not cause problems. Please check your installation of perl
if you have problems building this extension.

    I see you're using perl 5.012003 on i86pc-solaris-64int, okay.
    Remember to actually *read* the README file!
    Use  'make' to build the software (dmake or nmake on Windows).
    Then 'make test' to execute self tests.
    Then 'make install' to install the DBI and then delete this working
    directory before unpacking and building any DBD::* drivers.

Writing Makefile for DBI
Writing MYMETA.yml and MYMETA.json
/usr/perl5/5.12/bin/perl -MExtUtils::Command -e 'mkpath' -- blib/lib/DBI
rm -f blib/lib/DBI/Changes.pm
cp Changes blib/lib/DBI/Changes.pm
cp Driver_xst.h blib/arch/auto/DBI/Driver_xst.h
cp lib/DBI/Gofer/Response.pm blib/lib/DBI/Gofer/Response.pm
cp lib/DBD/Proxy.pm blib/lib/DBD/Proxy.pm
cp lib/DBI/Util/_accessor.pm blib/lib/DBI/Util/_accessor.pm
cp lib/DBI/Gofer/Transport/Base.pm blib/lib/DBI/Gofer/Transport/Base.pm
cp lib/DBD/DBM.pm blib/lib/DBD/DBM.pm
cp DBIXS.h blib/arch/auto/DBI/DBIXS.h
cp dbixs_rev.pl blib/lib/dbixs_rev.pl
cp lib/DBI/Const/GetInfoType.pm blib/lib/DBI/Const/GetInfoType.pm
cp lib/DBI/Gofer/Serializer/DataDumper.pm blib/lib/DBI/Gofer/Serializer/DataDumper.pm
cp lib/DBI/DBD/Metadata.pm blib/lib/DBI/DBD/Metadata.pm
cp lib/DBI/Const/GetInfo/ODBC.pm blib/lib/DBI/Const/GetInfo/ODBC.pm
cp lib/DBD/Gofer/Transport/pipeone.pm blib/lib/DBD/Gofer/Transport/pipeone.pm
cp lib/DBI/ProfileDumper/Apache.pm blib/lib/DBI/ProfileDumper/Apache.pm
cp lib/DBD/File.pm blib/lib/DBD/File.pm
cp Driver.xst blib/arch/auto/DBI/Driver.xst
cp lib/DBD/File/Roadmap.pod blib/lib/DBD/File/Roadmap.pod
cp lib/DBI/Util/CacheMemory.pm blib/lib/DBI/Util/CacheMemory.pm
cp lib/DBI/ProfileSubs.pm blib/lib/DBI/ProfileSubs.pm
cp lib/DBD/NullP.pm blib/lib/DBD/NullP.pm
cp dbi_sql.h blib/arch/auto/DBI/dbi_sql.h
cp lib/DBD/Gofer.pm blib/lib/DBD/Gofer.pm
cp lib/DBD/File/HowTo.pod blib/lib/DBD/File/HowTo.pod
cp dbd_xsh.h blib/arch/auto/DBI/dbd_xsh.h
cp dbivport.h blib/arch/auto/DBI/dbivport.h
cp lib/DBI/DBD/SqlEngine/HowTo.pod blib/lib/DBI/DBD/SqlEngine/HowTo.pod
cp dbixs_rev.h blib/arch/auto/DBI/dbixs_rev.h
cp lib/DBD/Gofer/Transport/corostream.pm blib/lib/DBD/Gofer/Transport/corostream.pm
cp lib/DBD/Gofer/Transport/Base.pm blib/lib/DBD/Gofer/Transport/Base.pm
cp lib/DBI/FAQ.pm blib/lib/DBI/FAQ.pm
cp lib/DBD/Gofer/Policy/rush.pm blib/lib/DBD/Gofer/Policy/rush.pm
cp lib/DBI/SQL/Nano.pm blib/lib/DBI/SQL/Nano.pm
cp lib/DBI/Gofer/Request.pm blib/lib/DBI/Gofer/Request.pm
cp lib/DBI/Const/GetInfo/ANSI.pm blib/lib/DBI/Const/GetInfo/ANSI.pm
cp lib/DBD/Gofer/Transport/stream.pm blib/lib/DBD/Gofer/Transport/stream.pm
cp lib/DBD/Gofer/Policy/classic.pm blib/lib/DBD/Gofer/Policy/classic.pm
cp lib/DBI/Gofer/Transport/stream.pm blib/lib/DBI/Gofer/Transport/stream.pm
cp lib/DBI/Const/GetInfoReturn.pm blib/lib/DBI/Const/GetInfoReturn.pm
cp DBI.pm blib/lib/DBI.pm
cp lib/DBI/Gofer/Serializer/Storable.pm blib/lib/DBI/Gofer/Serializer/Storable.pm
cp lib/DBD/Gofer/Policy/Base.pm blib/lib/DBD/Gofer/Policy/Base.pm
cp lib/DBD/Sponge.pm blib/lib/DBD/Sponge.pm
cp lib/DBD/Gofer/Policy/pedantic.pm blib/lib/DBD/Gofer/Policy/pedantic.pm
cp lib/DBI/Gofer/Transport/pipeone.pm blib/lib/DBI/Gofer/Transport/pipeone.pm
cp lib/DBI/DBD/SqlEngine/Developers.pod blib/lib/DBI/DBD/SqlEngine/Developers.pod
cp lib/DBI/W32ODBC.pm blib/lib/DBI/W32ODBC.pm
cp lib/DBD/Gofer/Transport/null.pm blib/lib/DBD/Gofer/Transport/null.pm
cp lib/Bundle/DBI.pm blib/lib/Bundle/DBI.pm
cp lib/DBD/File/Developers.pod blib/lib/DBD/File/Developers.pod
cp lib/DBI/Profile.pm blib/lib/DBI/Profile.pm
cp lib/DBI/ProfileDumper.pm blib/lib/DBI/ProfileDumper.pm
cp lib/DBI/Gofer/Serializer/Base.pm blib/lib/DBI/Gofer/Serializer/Base.pm
cp lib/DBI/ProxyServer.pm blib/lib/DBI/ProxyServer.pm
cp dbipport.h blib/arch/auto/DBI/dbipport.h
cp lib/DBI/Gofer/Execute.pm blib/lib/DBI/Gofer/Execute.pm
cp lib/DBI/DBD.pm blib/lib/DBI/DBD.pm
cp lib/Win32/DBIODBC.pm blib/lib/Win32/DBIODBC.pm
cp lib/DBI/DBD/SqlEngine.pm blib/lib/DBI/DBD/SqlEngine.pm
cp lib/DBI/PurePerl.pm blib/lib/DBI/PurePerl.pm
cp lib/DBD/ExampleP.pm blib/lib/DBD/ExampleP.pm
cp lib/DBI/ProfileData.pm blib/lib/DBI/ProfileData.pm
/usr/perl5/5.12/bin/perl -p -e "s/~DRIVER~/Perl/g" ./Driver.xst > Perl.xsi
/usr/perl5/5.12/bin/perl /usr/perl5/5.12/lib/ExtUtils/xsubpp  -typemap /usr/perl5/5.12/lib/ExtUtils/typemap -typemap typemap  Perl.xs > Perl.xsc && mv Perl.xsc Perl.c
gcc -c   -DPTR_IS_LONG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -xO4   -DVERSION=\"1.621\" -DXS_VERSION=\"1.621\" -KPIC "-I/usr/perl5/5.12/lib/i86pc-solaris-64int/CORE"  -DDBI_NO_THREADS Perl.c
gcc: unrecognized option '-KPIC'
gcc: language O4 not recognized
gcc: language O4 not recognized
gcc: Perl.c: linker input file unused because linking not done
/usr/perl5/5.12/bin/perl /usr/perl5/5.12/lib/ExtUtils/xsubpp  -typemap /usr/perl5/5.12/lib/ExtUtils/typemap -typemap typemap  DBI.xs > DBI.xsc && mv DBI.xsc DBI.c
gcc -c   -DPTR_IS_LONG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -xO4   -DVERSION=\"1.621\" -DXS_VERSION=\"1.621\" -KPIC "-I/usr/perl5/5.12/lib/i86pc-solaris-64int/CORE"  -DDBI_NO_THREADS DBI.c
gcc: unrecognized option '-KPIC'
gcc: language O4 not recognized
gcc: language O4 not recognized
gcc: DBI.c: linker input file unused because linking not done
Running Mkbootstrap for DBI ()
chmod 644 DBI.bs
rm -f blib/arch/auto/DBI/DBI.so
cc  -G -L/usr/lib -L/usr/ccs/lib  -L/lib -L/usr/gnu/lib DBI.o  -o blib/arch/auto/DBI/DBI.so     \
            \

gmake: cc: Command not found
gmake: *** [blib/arch/auto/DBI/DBI.so] Error 127
TIMB/DBI-1.621.tar.gz
/usr/sfw/bin/gmake -- NOT OK
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Failed during this command:
TIMB/DBI-1.621.tar.gz                        : make NO

Sorry I took so long to edit this and put up the error, got a little busy along the way. 抱歉,我花了很长时间编辑它并提出错误,在此过程中有点忙。 Anyone have any ideas what this gigantic error means? 任何人都知道这个巨大错误意味着什么吗? I figure it's something related to the compiler, just not sure what. 我认为这与编译器有关,只是不确定是什么。

NEW EDIT 新编辑

So after I found the workaround, it went through the installation process (which took surprisingly long) and finally came out with this... 因此,在找到解决方法之后,它经历了安装过程(花费了令人惊讶的很长时间),最后提出了解决方案...

Test Summary Report
-------------------
../cpan/CGI/t/tmpdir.t                                          (Wstat: 0 Tests: 9 Failed: 0)
  TODO passed:   3, 6, 8
../cpan/Socket/t/getnameinfo.t                                  (Wstat: 256 Tests: 14 Failed: 1)
  Failed test:  10
  Non-zero exit status: 1
Files=2334, Tests=522101, 1212 wallclock secs (90.50 usr 58.34 sys + 533.70 cusr 288.26 csys = 970.80 CPU)
Result: FAIL
*** Error code 1
make: Fatal error: Command failed for target `test_harness'
Installed /home/oracle/perl5/perlbrew/build/perl-5.16.0 as perl-5.16.0 successfully. Run the following command to switch to it.

  perlbrew switch perl-5.16.0

Just based on that, I went ahead and did /home/oracle/perl5/perlbrew/bin/perlbrew switch perl-5.16.0 but it returned, perl-5.16.0 is not installed 正是基于此,我继续进行了/home/oracle/perl5/perlbrew/bin/perlbrew switch perl-5.16.0但它返回了, perl-5.16.0 is not installed


:/ :/

I just went ahead and tried to look for an instance of perl-5.16.0 and did... 我只是继续尝试寻找perl-5.16.0的实例,并做了...

root@dr-solaris11:~/perl5/perlbrew/build# cd /home/oracle/perl5/perlbrew/build/perl-5.16.0
root@dr-solaris11:~/perl5/perlbrew/build/perl-5.16.0# ls
Artistic                 MANIFEST                 README.cn
AUTHORS                  mathoms.c                README.cygwin
autodoc.pl               mathoms.o                README.dgux
av.c                     META.yml                 README.dos
av.h                     metaconfig.h             README.epoc
av.o                     metaconfig.SH            README.freebsd
beos                     mg_data.h                README.haiku
bitcount.h               mg_names.c               README.hpux
cflags                   mg_raw.h                 README.hurd
cflags.SH                mg_vtable.h              README.irix
Changes                  mg.c                     README.jp
charclass_invlists.h     mg.h                     README.ko
config_h.SH              mg.o                     README.linux
config.h                 minimod.pl               README.macos
config.over              miniperl                 README.macosx
config.sh                miniperlmain.c           README.micro
configpm                 miniperlmain.o           README.mpeix
Configure                mkppport                 README.netware
configure.com            mkppport.lst             README.openbsd
configure.gnu            mpeix                    README.os2
cop.h                    mro.c                    README.os390
Copying                  mro.o                    README.os400
cpan                     myconfig                 README.plan9
Cross                    myconfig.SH              README.qnx
cv.h                     mydtrace.h               README.riscos
cygwin                   NetWare                  README.solaris
deb.c                    nostdio.h                README.symbian
deb.o                    numeric.c                README.tru64
dist                     numeric.o                README.tw
djgpp                    op_reg_common.h          README.uts
doio.c                   op.c                     README.vmesa
doio.o                   op.h                     README.vms
doop.c                   op.o                     README.vos
doop.o                   opcode.h                 README.win32
dosish.h                 opmini.c                 realclean.sh
dquote_static.c          opmini.o                 reentr.c
dump.c                   opnames.h                reentr.h
dump.o                   os2                      reentr.o
DynaLoader.o             overload.c               regcharclass.h
embed.fnc                overload.h               regcomp.c
embed.h                  pad.c                    regcomp.h
embedvar.h               pad.h                    regcomp.o
epoc                     pad.o                    regcomp.sym
ext                      parser.h                 regen
ext.libs                 patchlevel.h             regen_perly.pl
EXTERN.h                 perl                     regen.pl
extra.pods               perl.c                   regexec.c
fakesdio.h               perl.h                   regexec.o
fakethr.h                perl.o                   regexp.h
feature.h                perlapi.c                regnodes.h
form.h                   perlapi.h                run.c
generate_uudmap          perlapi.o                run.o
generate_uudmap.c        perldtrace.d             runtests
generate_uudmap.o        perlio.c                 runtests.SH
genpacksizetables.pl     perlio.h                 scope.c
git_version.h            perlio.o                 scope.h
globals.c                perlio.sym               scope.o
globals.o                perliol.h                sv.c
globvar.sym              perlmain.c               sv.h
gv.c                     perlmain.o               sv.o
gv.h                     perlmini.c               symbian
gv.o                     perlmini.o               t
h2pl                     perlsdio.h               taint.c
haiku                    perlsfio.h               taint.o
handy.h                  perlsh                   TestInit.pm
hints                    perlvars.h               thread.h
hv.c                     perly.act                time64_config.h
hv.h                     perly.c                  time64.c
hv.o                     perly.h                  time64.h
INSTALL                  perly.o                  toke.c
install_lib.pl           perly.tab                toke.o
installhtml              perly.y                  uconfig.h
installman               plan9                    uconfig.sh
installperl              pod                      uconfig64.sh
INTERN.h                 Policy_sh.SH             universal.c
intrpvar.h               Policy.sh                universal.o
iperlsys.h               Porting                  unixish.h
keywords.c               pp_ctl.c                 utf8.c
keywords.h               pp_ctl.o                 utf8.h
keywords.o               pp_hot.c                 utf8.o
l1_char_class_tab.h      pp_hot.o                 utfebcdic.h
lib                      pp_pack.c                util.c
libperl.a                pp_pack.o                util.h
locale.c                 pp_proto.h               util.o
locale.o                 pp_sort.c                utils
mad                      pp_sort.o                utils.lst
madly.c                  pp_sys.c                 uts
make_ext.pl              pp_sys.o                 uudmap.h
make_patchnum.pl         pp.c                     veryclean.sh
makedef.pl               pp.h                     vmesa
makedepend               pp.o                     vms
makedepend.SH            proto.h                  vos
makefile                 qnx                      warnings.h
Makefile                 README                   win32
Makefile.micro           README.aix               write_buildcustomize.pl
makefile.old             README.amiga             x2p
Makefile.SH              README.beos              XSUB.h
malloc_ctl.h             README.bs2000
malloc.c                 README.ce

Then I tried, /home/oracle/perl5/perlbrew/bin/perlbrew switch /home/oracle/perl5/perlbrew/build/perl-5.16.0 and I still got: /home/oracle/perl5/perlbrew/build/perl-5.16.0 is not installed 然后我尝试了/home/oracle/perl5/perlbrew/bin/perlbrew switch /home/oracle/perl5/perlbrew/build/perl-5.16.0 ,但我仍然得到: /home/oracle/perl5/perlbrew/build/perl-5.16.0 is not installed

:/ :/

  1. Undo everything, keep the GNU compiler toolchain (gnu-make, gcc-45). 撤消所有操作,保留GNU编译器工具链(gnu-make,gcc-45)。
  2. Follow the instructions at http://perlbrew.pl/ to install perlbrew . 按照http://perlbrew.pl/上的说明安装perlbrew (Mind to set the environment variable PERLBREW_ROOT first if you want to store perlbrew's files in a non-default directory.) At the end of its installation, it tells you to add shell commands to your login shell configuration and log in again, don't neglect those steps. (如果要在非默认目录中存储PERLBREW_ROOT的文件, PERLBREW_ROOT首先设置环境变量PERLBREW_ROOT 。)在安装结束时,它告诉您将shell命令添加到登录shell配置中,然后再次登录,请不要执行此操作。忽略这些步骤。
  3. Use perlbrew to install a supported Perl: 使用perlbrew安装受支持的Perl:

     perlbrew -v install perl-5.16.0 -Dcc=gcc perlbrew switch perl-5.16.0 perlbrew install-cpanm 
  4. cpanm is a replacement for cpan , no further configuration necessary. cpanm替代了cpan ,无需进一步配置。

     cpanm -v CGI cpanm -v DBI cpanm -v DBD::Oracle 
  1. I'm not sure why you're changing where the distribution is being installed, but to do so use 我不确定为什么要更改发行版本的安装位置,但请使用

     perl Makefile.PL PREFIX=/opt/oracle/rdbms 

    or some such. 或类似的东西。 Don't edit Makefile . 不要编辑Makefile

  2. You change where the module is installed, but it's not clear that you tell Perl where it is installed. 您可以更改模块的安装位置,但是尚不清楚您是否告诉Perl它的安装位置。 For the above command, you'd need something of the sort: 对于上面的命令,您需要某种类型的东西:

     export PERL5LIB=/opt/oracle/rdbms/lib/site_perl 

    If you still can't get it to work, please provide the full error message -- it should specify where Perl looked -- and the full patch to the directory is DBI.pm located after install. 如果仍然无法正常工作,请提供完整的错误消息-它应指定Perl的DBI.pm安装后,该目录的完整修补程序是DBI.pm (Using the above settings, it might be found in something like /opt/oracle/rdbms/lib/site_perl/5.16.0/x86_64-linux-thread-multi/DBI.pm .) (使用上述设置,可能会在/opt/oracle/rdbms/lib/site_perl/5.16.0/x86_64-linux-thread-multi/DBI.pm类的/opt/oracle/rdbms/lib/site_perl/5.16.0/x86_64-linux-thread-multi/DBI.pm找到它。)

Going back to your installation: 回到您的安装:

Step 1-5 is fine. 步骤1-5很好。 Don't export the PERL5LIB or PERLLIB not sure what the point of that is. 不要导出PERL5LIB或PERLLIB,不要确定这是什么意思。

Step 6) compile DBI 步骤6)编译DBI

cd DBI-1.621

since you want to use a different perl do the following: 由于要使用其他Perl,请执行以下操作:

/opt/oracle/rdbms/perl/bin/perl Makefile.PL

This should pickup the compiler option and perl libraries location of that perl (I assume you are trying to use the perl from oracle installation, not sure if that is wise). 这应该选择该perl的编译器选项和perl库位置(我假设您正在尝试从oracle安装中使用perl,不确定是否明智)。 Run make in the DBI-1.621 and then make install. 在DBI-1.621中运行make,然后进行安装。

Step 7) Compile DBD:Oracle and once again use your /opt/oracle/rdbms/perl/bin/perl on the Makefile.PL to create the makefile, don't edit the Makefile.PL. 步骤7)编译DBD:Oracle,然后再次在Makefile.PL上使用/ opt / oracle / rdbms / perl / bin / perl创建makefile,而不编辑Makefile.PL。 Make sure you have ORACLE_HOME set and ORACLE_USERID if you want to do make test. 如果要进行测试,请确保已设置ORACLE_HOME和ORACLE_USERID。 You may have to also set the LD_LIBRARY_PATH to include $ORACLE_HOME/lib if its not there already. 您可能还必须将LD_LIBRARY_PATH设置为包括$ ORACLE_HOME / lib(如果尚不存在)。 Run make and install as you did with DBI. 像使用DBI一样运行make并安装。

Step 8) Compile CGI, as before use /opt/oracle/rdbms/perl/bin/perl on the Makefile.PL to generate the proper makefile and then run make and install. 步骤8)像以前一样编译CGI,在Makefile.PL上使用/ opt / oracle / rdbms / perl / bin / perl生成正确的makefile,然后运行make and install。

Alternate method would be: 替代方法是:

do step1-5
export ORACLE_HOME="enter oracle home"
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib

/opt/oracle/rdbms/perl/bin/perl -MCPAN -e 'shell'
cpan>install DBI
cpan>install DBD::Oracle
cpan>install CGI

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM