トップ(最新)

nDiki : -rpath

スポンサード リンク

Related term

2004年2月8日 (日)

Berkeley DB 4.2.52 + DB_File 1.808 をホームにインストール このエントリーを含むはてなブックマーク

[ Perl ]

DiKicker の二次データの保存先を何にしようか思案中。 MLDBM::Sync が候補なのだが、MLDBM::Sync::SDBM_Fileだとデータが大きくなった時に速度が出ないようだ。

このサーバ(FreeBSD)のPerl(5.005_03)は、DB_FileGDBM_Fileも有効になかったので今までDBMパッケージの使用は避けてきたのだが、さすがに今回は使えないと辛いかも。

ということで Berkeley DB も含めて DB_File をホームにインストール

@ db-4.2.52

 tar zxvf db-4.2.52.tar.gz
 cd db-4.2.52/build_unix
 ../dist/configure --prefix=$HOME/local/db-4.2.52
 make
 make install
 rm -rf $HOME/local/db-4.2.52/docs

インストール自体は特に依存するものも無く簡単。 ただし、このサーバでは丁度 busy だった事もあってビルドに2時間!もかかってしまった。 本来は暇そうな時にやるべきなのだろうけど、今日中にうまくいくか検証しておきたかったので、待った。

@ DB_File-1.808

 tar zxvf DB_File-1.808.tar.gz
 cd DB_File-1.808
 export DB_FILE_LIB=$HOME/local/db-4.2.52/lib
 export DB_FILE_INCLUDE=$HOME/local/db-4.2.52/include
 perl Makefile.PL INSTALLDIRS=site \
                  LIB=$HOME/local/lib/perl \
                  INSTALLMAN1DIR=/tmp/man/man1 \
                  INSTALLMAN3DIR=/tmp/man/man3
 make OTHERLDFLAGS="-Wl,-rpath -Wl,$HOME/local/db-4.2.52/lib"
 make test
 make install

libdb を実行時に検索させるのに LD_LIBRARY_PATH環境変数とか指定したくなかったので、-rpath を指定してしまった。 Makefile中の OTHERLDFLAGS 変数がリンク時に空だったので、ここで設定。

しかし libdb-4.2 でかいな。 Perl からの呼び出し一発目は結構時間がかかる。

スポンサード リンク


[ 2月8日全て ]

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日全て ]

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

perl(62) torrent(54) linux(48) 提案書(47) windows(43) 書き方(41) 使い方(29) アジェンダ(26) x31(25) 充電式カイロ(25) cvs(22) インストール(20) サンプル(20) thinkpad(19) アジェンダとは(19) f-01a(18) wiki(17) c#(16) 感想(16) カイロ(16) usb(16) java(16) 秋葉原(15) debian(15) ヨドバシカメラ(15) subversion(15) 壁紙(15) 作り方(15) 静電気(14) apache(14) グッズ(14) デロンギ(13) フリー(13) sh-01a(13) ganttproject(13) 修理(13) ssh(12) svn(12) ヨドバシ(12) truecrypt(12) ダイソー(11) 手帳(11) activeperl(11) ubuntu(11) ほぼ日手帳(11) firefox(10) mew(10) mp980(10) ドラマ(10) 日本語(10) n-01a(10) google(10) tc-1(10) 評判(10) ツール(10) djunit(9) cgi(9) 動画(9) mp3(9) オイルヒーター(9) docomo(9) rcs(9) 除去(9) centos(9) メモリ(9) エネループ(9) 設定(9) p-01a(9) tortoisesvn(9) 無印(8) ケース(8) 口コミ(8) ミノルタ(8) メール(8) インストーラ(8) 会議(8) xampp(8) 加湿器(8) af(7) 値段(7)

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

Process Time: 15.211045s / load averages: 0.18, 0.24, 0.23
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)