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_File も GDBM_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 からの呼び出し一発目は結構時間がかかる。
- DBD::Oracle 1.16 を Debian GNU/Linux s... (2005-05-19)
- [ Perl ] Memcached を使ってみる (2004-01-12)
- [ Perl ] DB_File - DB_BTREE のロック (2004-02-16)
- Debian GNU/Linux に Hyper Estraier 1.2... (2006-05-31)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
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.
というエラーが出て駄目。
- ActivePerl で Ming (2005-02-23)
- Berkeley DB 4.2.52 + DB_File 1.808 をホ... (2004-02-08)
- Debian GNU/Linux sid 環境を新 HDD へ (2006-07-29)
- Debian Linux kernel 2.6.23 をビルドする。 (2007-12-23)
- 古い Crypto++ は古い GCC で (2006-02-07)
■よく検索されるキーワード
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)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン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)



スポンサード リンク