読者です 読者をやめる 読者になる 読者になる

Perl - *DBM_Fileのインストール

Perl にはコアモジュールとして DB_File, GDBM_File, NDBM_File, ODBM_File, SDBM_Fileがある。 しかし、SDBM_File 以外は適切なライブラリ、ヘッダーがないとインストールされない。

例えば、ubuntu 12.04 にplenvでインストールした perl だと

% perl -le 'map { print eval("use $_; 1") ? "OK" : "NG", " $_" } qw(DB_File GDBM_File NDBM_File ODBM_File SDBM_File)'
NG DB_File
NG GDBM_File
NG NDBM_File
NG ODBM_File
OK SDBM_File

みたいになってた。

せっかく用意されてるのだからこれらもperl と一緒にインストールしたい。

ということで外部ライブラリ、ヘッダーを$MY_MISC に入れた後、perl を $MY_PERL にインストールしてみる。

berkeley-db, gdbm のインストール

% export MY_PERL=$HOME/.plenv/versions/custom5.18.0
% export MY_MISC=$HOME/.plenv/versions/custom5.18.0/misc
% mkdir -p $MY_PERL $MY_MISC

% wget http://download.oracle.com/berkeley-db/db-5.3.21.tar.gz
% tar xzf db-5.3.21.tar.gz
% cd db-5.3.21/docs
% ../dist/configure --prefix=$MY_MISC
% make && make install
% cd ../..

% wget ftp://ftp.gnu.org/gnu/gdbm/gdbm-1.10.tar.gz
% tar xzf gdbm-1.10.tar.gz
% cd gdbm-1.10
% ./configure --prefix=$MY_MISC --enable-libgdbm-compat
% make && make install
% cd ..

perlのインストール

% wget http://www.cpan.org/src/5.0/perl-5.18.0.tar.gz
% tar xzf perl-5.18.0.tar.gz
% cd perl-5.18.0

% ./Configure -de \
  -Dprefix=$MY_PERL \
  -Dlocincpth=$MY_MISC/include \
  -Dloclibpth=$MY_MISC/lib \
  -Aldflags="-Wl,-rpath,$MY_MISC/lib" \
  -A"eval:scriptdir=$MY_PERL/bin"
% make && make test && make install

結果

% $MY_PERL/bin/perl -le 'map { print eval("use $_; 1;") ? "OK" : "NG", " $_" } qw(DB_File GDBM_File NDBM_File ODBM_File SDBM_File)'
OK DB_File
OK GDBM_File
OK NDBM_File
OK ODBM_File
OK SDBM_File

SEE ALSO