2

64ビットのSolaris環境にCGIDBIDBD :: Oracleとドライバをインストールしようとしましたが、ほとんど役に立ちませんでした。私が遭遇したエラーの数は気が遠くなるようなものであり、環境変数の変更、ディレクトリ参照の変更、ファイルの移動とコピー、コンパイラの変更など、私が試した回避策の数はさらに悪化しています。そして最悪の部分は、Solarisの最新バージョンにモジュールをインストールするためのドキュメントがほとんどないことです。

これが私たちが行ってきた最初のステップです。

  1. まず、http://search.cpan.org/にアクセスします。次に、ダウンロードします。

  2. 次に、ターミナルウィンドウを開き、rootに切り替えて、[ダウンロード]フォルダに移動します。

  3. ここから、以前にダウンロードしたファイルを解凍します(ここでは問題ありません)。

    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. 次に、後で必要になる可能性がある場合に備えて、tarファイルをアーカイブします。

    mkdir archive_tar
    mv *.gz $HOME/Downloads/archive_tar
    
  5. これらの手順が完全に必要かどうかわからないため、ここで少し混乱します。基本的に、正しいPerlをセットアップする必要があると考えています(最新のOracleには64ビットが必要で、デフォルトで使用されるPerlは32ビットです)。

    1. which perl使用しているPerlの現在のバージョンを判別するために入力します。デフォルトバージョン(または32ビット)を使用していることを示しているはずです。
    2. 次の手順を実行して、64ビットのPerlインストールが利用可能であることを確認します。file /opt/oracle/rdbms/perl/bin/perl
    3. が表示されますELF 64-bit LSB executable AMD64 Version 1 [SSE2 SSE FXSR CMOV FPU], dynamically linked, not stripped<
    4. PATH変数に追加して、このバージョンのPerlの使用に切り替えます。export PATH=/opt/oracle/rdbms/perl/bin:$PATH
    5. タイプwhich perl。これで、にあるPerlが表示されることを確認しopt/oracle/rdbms/perl/bin/perlます。
    6. 「」と入力perl -Vし、エラーが表示された場合は、以下の変数を設定します。

      export PERL5LIB=/opt/oracle/rdbms/perl/lib/5.10.0
      export PERLLIB=/opt/oracle/rdbms/perl/lib/5.10.0
      
  6. cc次に、CGI / DBI / DBD-Oracleをインストールできるように(コンパイラ)を設定します。

    1. 入力して、見つからないcc --versionことを確認します。cc
    2. ブラウザを開き、SolarisStudioに移動します。ここに、Sunのコンパイラを含むパッケージがあります。
    3. Solaris11OSプラットフォーム用の「TarfileonSolarisSPARC」をダウンロードします。
    4. ターミナルウィンドウで、次のように入力して上記のファイルを解凍します。bzcat SolarisStudio12.3-solaris-sparc-bin.tar.bz2 | tar xf -
    5. .bz2以前に作成したアーカイブフォルダにファイルを移動します。mv SolarisStudio12.3-solaris-sparc-bin.tar.bz2 $HOME/Downloads/archive_tar
    6. ここで、新しいコンパイラをパスに追加したいので、次の方法でこれを行います。export PATH=$PATH:/home/oracle/Downloads/SolarisStudio12.3-solaris-sparc-bin/solarisstudio12.3/bin
    7. と入力cc --versionします。このコマンドは何も実行しないはずです(おそらくいくつかの警告をスローします)が、それ以上は表示されませcc not foundん。
  7. ここでは、CGIモジュールから始めて、モジュールとドライバーのインストールを開始します。

    1. 案内する$HOME/Downloads/CGI.pm-3.59
    2. タイプperl Makefile.PL
    3. 正しい場所を指すようにmakeファイルを変更する必要があります。

      1. タイプ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. ここで入力しますmake

    5. 次に、次のように入力しますmake install
    6. 次に、DBIモジュールに移動します。に移動し$HOME/Downloads/DBI-1.621ます。
    7. タイプperl Makefile.PL
    8. ここでも、正しい場所を指すようにこのmakeファイルを変更する必要があります。

      1. タイプ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. ただし、これらは変更したくない2行を変更します。したがって、を検索しMAKEMAKERXSUBPPDIR、以下の値に戻します。

      MAKEMAKER = /opt/oracle/rdbms/perl/lib/5.10.0/ExtUtils/MakeMaker.pm
      XSUBPPDIR = /opt/oracle/rdbms/perl/lib/5.10.0/ExtUtils
      
    10. ここで入力しますmake

    11. 次に、次のように入力しますmake install
    12. 次に移動します$HOME/Downloads/DBD-Oracle-1.44
    13. タイプperl Makefile.PL

use DBI 1.51;そして、それは基本的に、Makefileの21行目で致命的なエラーが発生する場所であり、スタックをトレースすると、@INCが見つからないことが示されますDBI.pm。そのため、バイナリライブラリファイルを移動しようとしました。現時点ではSolarisボックスにアクセスできないため、正確なエラーコードを再投稿できません。おそらく火曜日(マシンに戻ることができる最も早い時期)にそれを含めることができるはずです。しかし、誰かがこの点について何かアイデアを持っていますか?

CPANシェルを使用した代替ルート

  1. ターミナルウィンドウを開き、rootユーザーとして次のパッケージをインストールします。

    pkg install system/header
    pkg install gcc-45
    pkg install developer/build/gnu-make
    pkg install archiver/gnu-tar
    
  2. $ oracle_homecd $oracle_homeに移動し、次のようにします。

    mkdir /apps
    mkdir /apps/twiki-root
    mkdir /apps/twiki-root/perlmodules
    
  3. PERL5LIB環境変数を変更します。

    • export PERL5LIB=/apps/twiki-root/perlmodules
    • 次のように入力して確認します。echo $PERL5LIB
  4. CPANシェルを開き、更新します。

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

    初めての場合は、を押しreturnて自動構成を受け入れます。次に、次のコマンドを入力して、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. ファイルを開き、Config.pm以下の説明に従って変更します。

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

    これらの値を変更します。

    '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],
    

    ファイルへの書き込み/保存して終了→:wq

  6. gcc設定されていることを確認してください。

    確認方法:which gcc

  7. ここでもう一度CPANシェルを開き、DBIモジュールのインストールを開始します。

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

そして、これはすべてががらくたになるところです。エラー:

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

申し訳ありませんが、これを編集してエラーを表示するのに時間がかかり、途中で少し忙しくなりました。この巨大なエラーが何を意味するのか、誰かが何か考えを持っていますか?私はそれがコンパイラに関連していると思いますが、何がわからないのです。

新しい編集

そのため、回避策を見つけた後、インストールプロセス(驚くほど時間がかかりました)を経て、最終的にこれが実現しました...

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

それに基づいて、私は先に進んでやりました/home/oracle/perl5/perlbrew/bin/perlbrew switch perl-5.16.0が、それは戻ってきました、perl-5.16.0 is not installed


:/

私は先に進んで、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

それから私は試しました、/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

:/

4

3 に答える 3

3
  1. すべてを元に戻し、GNUコンパイラツールチェーン(gnu-make、gcc-45)を保持します。
  2. http://perlbrew.pl/の指示に従ってインストールしperlbrewます。PERLBREW_ROOT( perlbrewのファイルをデフォルト以外のディレクトリに保存する場合は、最初に環境変数を設定してください。)インストールの最後に、ログインシェル構成にシェルコマンドを追加して再度ログインするように指示されます。ログインしないでください。それらのステップを無視してください。
  3. perlbrewサポートされているPerlをインストールするために使用します。

    perlbrew -v install perl-5.16.0 -Dcc=gcc
    perlbrew switch perl-5.16.0
    perlbrew install-cpanm
    
  4. cpanmの代わりになりcpanます。これ以上の構成は必要ありません。

    cpanm -v CGI
    cpanm -v DBI
    cpanm -v DBD::Oracle
    
于 2012-06-06T09:52:35.327 に答える
2

インストールに戻ります。

手順1-5で問題ありません。PERL5LIBまたはPERLLIBをエクスポートしないでください。そのポイントが何であるかがわかりません。

ステップ6)DBIをコンパイルする

cd DBI-1.621

別のperlを使用したいので、次のようにします。

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

これにより、そのperlのコンパイラオプションとperlライブラリの場所が取得されます(Oracleインストールからperlを使用しようとしていると思いますが、それが賢明かどうかはわかりません)。DBI-1.621でmakeを実行してから、makeinstallを実行します。

ステップ7)DBD:Oracleをコンパイルし、Makefile.PLで/ opt / oracle / rdbms / perl / bin /perlを再度使用してmakefileを作成します。Makefile.PLは編集しないでください。makeテストを実行する場合は、ORACLE_HOMEとORACLE_USERIDが設定されていることを確認してください。$ ORACLE_HOME / libがまだ存在しない場合は、LD_LIBRARY_PATHを設定して$ ORACLE_HOME/libを含める必要がある場合もあります。DBIの場合と同じように、makeとinstallを実行します。

ステップ8)前と同じようにCGIをコンパイルし、Makefile.PLで/ opt / oracle / rdbms / perl / bin / perlを使用して適切なmakefileを生成し、makeとinstallを実行します。

別の方法は次のとおりです。

ステップ1-5を実行します
export ORACLE_HOME = "enter oracle home"
エクスポートLD_LIBRARY_PATH=$ {LD_LIBRARY_PATH}:$ ORACLE_HOME / lib

/ opt / oracle / rdbms / perl / bin / perl -MCPAN-e'シェル'
cpan> install DBI
cpan> install DBD :: Oracle
cpan>CGIのインストール

于 2012-06-07T13:48:26.040 に答える
1
  1. ディストリビューションのインストール場所を変更する理由はわかりませんが、変更するには

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

    またはそのようなもの。編集しないでくださいMakefile

  2. モジュールがインストールされている場所を変更しますが、モジュールがインストールされている場所をPerlに指示するかどうかは明確ではありません。上記のコマンドの場合、次のようなものが必要になります。

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

    それでも動作しない場合は、完全なエラーメッセージ(Perlがどこを検索したかを指定する必要があります)を入力してください。ディレクトリへの完全なパッチは、DBI.pmインストール後に配置されます。(上記の設定を使用すると、次のような場所に表示される場合があります/opt/oracle/rdbms/lib/site_perl/5.16.0/x86_64-linux-thread-multi/DBI.pm。)

于 2012-05-25T16:52:40.887 に答える