トップ(最新)

nDiki : 2005年05月19日

2005年5月19日 (木)

DBD::Oracle 1.16 を Debian GNU/Linux sid に入れる このエントリーを含むはてなブックマーク

インストール方法は「Instant Client10g」を参考にした。

@ Oracle クライアントライブラリを取得

Oracle Technology Network License のもとで配布されている、Oracle Database 10g の instant client を利用する。 30日間試用可能。

  • instantclient-basic-linux32-10.1.0.3.zip
  • instantclient-sdk-linux32-10.1.0.3.zip
  • instantclient-sqlplus-linux32-10.1.0.3.zip

をダウンロード。

@ Oracle クライアントライブラリを展開

/usr/local/oracle の下に展開。シンボリックリンクをいくつか設定する。

 mkdir /usr/local/oracle
 cd /usr/local/oracle
 unzip /tmp/instantclient-basic-linux32-10.1.0.3.zip
 unzip /tmp/instantclient-sdk-linux32-10.1.0.3.zip
 unzip /tmp/instantclient-sqlplus-linux32-10.1.0.3.zip
 cd instantclient10_1
 ln -s . lib
 ln -s libclntsh.so.10.1 libclntsh.so
 ln -s libocci.so.10.1 libocci.so

@ ビルド環境を設定

環境変数を設定する

 export ORACLE_HOME=/usr/local/oracle/instantclient10_1
 export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH

@ DBD::Oracle を deb パッケージ化

まずはソースアーカイブを展開。

 tar ztvf DBD-Oracle-1.16.tar.gz
 cd DBD-Oracle-1.16

次に Makefile.PL を編集

 5a6,7
 > push(@ARGV, '-l');
 >
 279c281
 <     my @h_dirs = find_headers();
 ---
 >     #my @h_dirs = find_headers();
 283c285
 <         push @h_dirs, 'network/public';
 ---
 >         #push @h_dirs, 'network/public';
 289c291,292
 <     my $inc = join " ", map { "-I$OH/$_" } @h_dirs;
 ---
 >     #my $inc = join " ", map { "-I$OH/$_" } @h_dirs;
 >     my $inc ="-I/usr/local/oracle/instantclient10_1/sdk/include";
 725c728
 < exit 0;
 ---
 > #exit 0;
 1606a1610
 > 1;

ヘッダファイルディレクトリ自動取得を止めて決め打ちにし、また Makefile.PL 実行時に -l を指定するようにする。 それから dh-make-perl がモジュール依存関係取得するため Makefile.PL を require した際に真を返さないでエラーになってしまうようなので、これも修正。

でパッケージ化。

 rm META.yml # あると dh-make-perl が deb パッケージ名をつけ間違える?
 dh-make-perl --build --notest

deb パッケージ

 libdbd-oracle-perl_1.16-1_i386.deb

ができあがるので、これを dpkg でインストール

@ 実行時

とりあえず、手近のサーバに接続して、簡単な select が動くことを確認。

いまのところ DBD::Oracle を使用するPerlプログラム実行時にも LD_LIBRARY_PATH を同様に設定しておく必要あり。

Makefile.PL 書き換え時に、

 $opts{dynamic_lib}->{OTHERLDFLAGS} .=
   '-Wl,-rpath -Wl,/usr/local/oracle/instantclient10_1';

-rpath を指定してみたが、

 DBI connect('host=192.168.x.x;sid=dbsid','usr',...) failed: ERROR OCIEnvNlsCreate (check ORACLE_HOME and NLS settings etc.) at test.pl line 3
 ERROR OCIEnvNlsCreate (check ORACLE_HOME and NLS settings etc.) at test.pl line 5.

というエラーが出て駄目。

スポンサード リンク


[ 5月19日全て ]

■よく検索されるキーワード

torrent(109) x31(45) thinkpad(31) 動画(29) 提案書(26) mp980(24) 手帳(24) windows(23) linux(23) 画像(21) 使い方(21) リフィル(21) debian(20) usb(20) tc-1(19) perl(19) 筆まめ(18) 壁紙(17) ほぼ日手帳(16) 冷蔵庫(14) ドラマ(13) wiki(13) 書き方(12) ダイソー(12) システム手帳(12) 宮根誠司(12) ノート(11) so905ics(11) 無印(11) バッグインバッグ(11) 映画(11) 設定(10) 修理(10) 宮根(9) ssh(9) a6(9) ほぼ日(9) 黒田征太郎(9) バッグ(9) gmail(8) 感想(8) (8) f-01a(8) メモリ(8) gtd(8) ブログ(8) nikon(8) allinanchor:*.torrent(8) ボールペン(7) 方眼(7) ポイント(7) 4c(7) ヨドバシカメラ(7) ケース(7) twitter(7) apache(7) ht-01a(7) ヨドバシ(7) ubuntu(7) truecrypt(7) n-02a(7) 作り方(7) minolta(7) af(6) インストール(6) ガントチャート(6) mp3(6) zippo(6) hdd(6) emacs(6) レビュー(6) カバー(6) vq1005(6) 日本語(6) ハクキンカイロ(6) 無印良品(6) グレゴリー(6) 交換(6) nikkor(6) pixus(6)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.019819s / load averages: 0.40, 0.42, 0.33
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)