2016-09-14 20 views
-5

私のPerlスクリプトの実行中に以下のエラー・メッセージが表示されます。 以下は、スクリプトのコンパイル中に表示されるエラーメッセージです。PerlスクリプトがOracle Databaseに接続できません

install_driver(オラクル)は失敗しました:読み込むことができません '/xxx/usr/local/lib/perl5/site_perl/5.10.0/sun4-solaris/auto/DBD/Oracle/Oracle.so' モジュールの DBD :: Oracle:ld.so.1:perl:fatal:libclntsh.so.10.1:オープンに失敗しました: /xxx/usr/local/lib/perl5/5.10.0/sun4-solaris/にそのようなファイルまたはディレクトリはありませんDynaLoader.pm line 203. at(eval 99)3行 (eval 99)3行目でコンパイルに失敗しました。 おそらく必要な共有ライブラリまたはdllが/ xxx/xxxx/xxxx /にある にインストールされていません。 XXXX/XXXX/CommonOracle.pm行71

最近Oracleは私のシステムで10.2から11.0にアップグレードされました。問題を解決するのを手伝ってください。私は自分のシステムの管理者ではない。 LD_LIBRARRY_PATHを変更する必要がありますか?私はSolaris OSを使用しています。

+0

[質問]と[mcve] – Aleksej

答えて

1

質問をするのを忘れたようです。それをどうすれば修正できるのでしょうか?

データベースと通信するには、システムにいくつかのものがインストールされている必要があります。

  • 使用しているデータベースシステムのクライアントライブラリが必要です。おそらく/ usr/libの下にある共有オブジェクト(.so)ファイルになります。

  • データベースエンジン用のPerlデータベースドライバが必要です(この場合、DBD :: Oracleです)。これを最初から構築することによってインストールする場合(cpanまたはcpanmコマンドのように)、上記のクライアントライブラリの開発版がほぼ必要です。あらかじめ構築されたバイナリバージョン(Linuxの場合は.rpmまたは.apt - 私はSolarisの場合はそれを知らない)をインストールしている場合、これらは必要ありません。

  • Perl DBIライブラリが必要です。

DBD :: Oracleがインストールされているように見えます。つまり、DBIもインストールされます。しかし、DBD :: Oracleはクライアントライブラリの検索に問題があります。これは、DBD :: Oracleをインストールするために必要なものであるため、驚くべきことです。

したがって、私は、Oracleクライアントライブラリがインストールされていないか、インストールされていると思われますが、DBD :: Oracleが探している場所ではないと思われます。

DBD :: Oracleはどのようにインストールされましたか?あなたはエラーを検査できるインストールのログを持っていますか?

+0

ありがとうございました。しかし、私はインストールのログを持っていません。 perlモジュールがインストールされています。 Perl DBIライブラリをもう一度チェックしてみます。 Oracleのバージョンがアップグレードされると影響を受けますか? –

+1

問題はDBIライブラリではありません。それは、Oracleクライアントライブラリのようです。私はDBD :: Oracleを再インストールしようとしていて、どうなっているのか見てみよう。 –

0

問題は解決されました。 libファイル "libclntsh.so.10.1"がライブラリパスに見つかりませんでした。ファイルをコピーして問題が解決されました

関連する問題