2

Perl ユーティリティを使用して、DB2 データベースからデータをダンプしています。DBI パッケージをインストールしましたが、DBD パッケージも要求しています。

root アクセス権がなく、DBD パッケージをインストールしようとすると、次のエラーが発生します。

    エラー構築DB2.pm
    [lijumathew@intblade03 DBD-DB2-1.78]$ make
    make[1]: ディレクトリ '/home/lijumathew/lperl/perlsrc/DBD-DB2-1.78/Constants' に入ります
    gcc -c -I"/db2/db2tf1/sqllib/include" -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/ gdbm -O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -DVERSION=\"1.78\" -DXS_VERSION=\"1.78\" -fPIC "-I/usr/lib/perl5/5.8.5/i386 -linux-thread-multi/CORE" Constants.c
    DBD::DB2::Constants () の Mkbootstrap の実行
    chmod 644 定数.bs
    rm -f ../blib/arch/auto/DBD/DB2/Constants/Constants.so
    gcc -shared -L/usr/local/lib Constants.o -o ../blib/arch/auto/DBD/DB2/Constants/Constants.so
    chmod 755 ../blib/arch/auto/DBD/DB2/Constants/Constants.so
    cp Constants.bs ../blib/arch/auto/DBD/DB2/Constants/Constants.bs
    chmod 644 ../blib/arch/auto/DBD/DB2/Constants/Constants.bs
    make[1]: ディレクトリ `/home/lijumathew/lperl/perlsrc/DBD-DB2-1.78/Constants' を離れます
    gcc -c -I"/db2/db2tf1/sqllib/include" -I"/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBI" -I"/usr/lib /perl5/5.8.5/i386-linux-thread-multi/auto/DBI" -I"/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/auto/DBI" -I" /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBI" -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE - D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -DVERSION=\"1.78\" -DXS_VERSION=\"1.78\" -fPIC "-I/usr /lib/perl5/5.8.5/i386-linux-thread-multi/CORE" DB2.c
    DB2.h:22 からインクルードされたファイルでは、
                     DB2.xs:7 から:
    dbdimp.h:10:22: dbivport.h: そのようなファイルまたはディレクトリはありません
    make: *** [DB2.o] エラー 1

どうすればこれを修正できますか? これを解決するには root アクセスが必要ですか?

4

2 に答える 2

2

DBD-DB2 を含むほとんどの perl モジュールは、DBI モジュールとは異なる場所にインストールするように書かれていないため、問題が発生しています。これは、root 以外でインストールしようとした場合に発生します。これを機能させるには、次のような行を Makefile に追加する必要があります。

DEFINE =  -DDB2_CACHE_FIX  -I${DBI_INCL}

そして DBI_INCL を DBI ヘッダー ファイルがあるディレクトリに設定します。

于 2010-04-28T18:02:36.600 に答える
1

DBD::DB2 make failedの CPAN フォーラムをご覧ください。

また、以下を行うと、あなたを助けることができます:

Set the DB2 environment variable

   1. In C Shell setenv DB2_HOME $HOME/sqllib
   2. In Bash Shell export DB2_HOME=$HOME/sqllib

モジュールのインストール:

# perl Makefile.PL PREFIX=path
# make
# make test
# make install

ただし、perl -V の出力、使用しているプラ​​ットフォーム、および DBI のバージョンを提供していただけると、問題に回答していただけると助かります。

于 2010-04-28T06:30:30.130 に答える