* [ruby-dev:50898] DBMモジュールが使うバックエンドをrubyをビルドする際に指定する方法について
@ 2019-12-20 3:05 Yasuhiro KIMURA
2019-12-20 5:43 ` [ruby-dev:50899] DBMモジュールが使うバックエンドをrubyをビルドする際に指定する方法について Tanaka Akira
0 siblings, 1 reply; 3+ messages in thread
From: Yasuhiro KIMURA @ 2019-12-20 3:05 UTC (permalink / raw)
To: ruby-dev
木村と申します。
ruby-listとどちらで尋ねるか迷いましたが、rubyのプログラミングの話では
なく、rubyのビルドに関する話なのでこちらで。
Rubyのソースのext/dbm/extconf.rbによると、DBMモジュールはバックエンド
として複数のDBMライブラリ(libcのndbm、Berkley DB, GDBM, QDBM)をサポー
トしています。そして、どのライブラリを使うかを明示的に指定したい場合に
は、extconf.rbに対して--with-dbm-typeオプションを追加すれば指定できる
ようです。例えばバックエンドとしてQDBMを使いたい場合には、QDBMをインス
トールした後に
tar xfpvJ ruby-2.6.5.tar.xz
cd ruby-2.6.5/ext/dbm
ruby extconf.rb --with-dbm-type=qdbm
make
とすれば、libqdbm.soがリンクされたdbm.soがビルドされます。
それではext/dbm単独ではなくruby全体をビルドする際に、DBMモジュールが用
いるバックエンドを指定するには、どのようにしたら良いのでしょうか。試し
に
tar xfpvJ ruby-2.6.5.tar.xz
cd ruby-2.6.5
./configure --with-dbm-type=qdbm
make
としてみましたが、ext/dbm/extconf.rbにはconfigureで指定し
た--with-dbm-typeオプションは渡されないようです。パッチを当てたりせず
に指定できる方法がありましたら、教えてください。
---
木村 康浩
^ permalink raw reply [flat|nested] 3+ messages in thread
* [ruby-dev:50899] Re: DBMモジュールが使うバックエンドをrubyをビルドする際に指定する方法について
2019-12-20 3:05 [ruby-dev:50898] DBMモジュールが使うバックエンドをrubyをビルドする際に指定する方法について Yasuhiro KIMURA
@ 2019-12-20 5:43 ` Tanaka Akira
2019-12-20 5:55 ` [ruby-dev:50900] " Yasuhiro KIMURA
0 siblings, 1 reply; 3+ messages in thread
From: Tanaka Akira @ 2019-12-20 5:43 UTC (permalink / raw)
To: Ruby developers (Japanese)
2019年12月20日(金) 12:06 Yasuhiro KIMURA <yasu@utahime.org>:
> それではext/dbm単独ではなくruby全体をビルドする際に、DBMモジュールが用
> いるバックエンドを指定するには、どのようにしたら良いのでしょうか。試し
> に
>
> tar xfpvJ ruby-2.6.5.tar.xz
> cd ruby-2.6.5
> ./configure --with-dbm-type=qdbm
> make
>
> としてみましたが、ext/dbm/extconf.rbにはconfigureで指定し
> た--with-dbm-typeオプションは渡されないようです。パッチを当てたりせず
> に指定できる方法がありましたら、教えてください。
とりあえず ruby-2.6.5 で ./configure --with-dbm-type=qdbm は動く気がします。
% sudo apt install libqdbm-dev
% mkdir /tmp/a
% cd /tmp/a
% ./configure --with-dbm-type=qdbm --prefix=/tmp/a
% make
% grep -i qdbm ext/dbm/extconf.h
#define RUBYDBM_DBM_HEADER "qdbm/relic.h"
#define RUBYDBM_DBM_TYPE "qdbm"
#define DBM_HDR <qdbm/relic.h>
% ldd ./.ext/x86_64-linux/dbm.so
linux-vdso.so.1 (0x00007fff103e7000)
libqdbm.so.14 => /lib/libqdbm.so.14 (0x00007fda759c5000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fda75842000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fda75681000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fda75463000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fda75442000)
/lib64/ld-linux-x86-64.so.2 (0x00007fda75a2f000)
libqdbm がリンクされているのが確認できます。
--
[田中 哲][たなか あきら][Tanaka Akira]
^ permalink raw reply [flat|nested] 3+ messages in thread
* [ruby-dev:50900] Re: DBMモジュールが使うバックエンドをrubyをビルドする際に指定する方法について
2019-12-20 5:43 ` [ruby-dev:50899] DBMモジュールが使うバックエンドをrubyをビルドする際に指定する方法について Tanaka Akira
@ 2019-12-20 5:55 ` Yasuhiro KIMURA
0 siblings, 0 replies; 3+ messages in thread
From: Yasuhiro KIMURA @ 2019-12-20 5:55 UTC (permalink / raw)
To: ruby-dev
木村です。
From: Tanaka Akira <akr@fsij.org>
Subject: [ruby-dev:50899] Re: DBMモジュールが使うバックエンドをrubyをビルドする際に指定する方法について
Date: Fri, 20 Dec 2019 14:43:23 +0900
> とりあえず ruby-2.6.5 で ./configure --with-dbm-type=qdbm は動く気がします。
>
> % sudo apt install libqdbm-dev
> % mkdir /tmp/a
> % cd /tmp/a
> % ./configure --with-dbm-type=qdbm --prefix=/tmp/a
> % make
> % grep -i qdbm ext/dbm/extconf.h
> #define RUBYDBM_DBM_HEADER "qdbm/relic.h"
> #define RUBYDBM_DBM_TYPE "qdbm"
> #define DBM_HDR <qdbm/relic.h>
> % ldd ./.ext/x86_64-linux/dbm.so
> linux-vdso.so.1 (0x00007fff103e7000)
> libqdbm.so.14 => /lib/libqdbm.so.14 (0x00007fda759c5000)
> libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fda75842000)
> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fda75681000)
> libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fda75463000)
> libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fda75442000)
> /lib64/ld-linux-x86-64.so.2 (0x00007fda75a2f000)
>
> libqdbm がリンクされているのが確認できます。
あれ、そうですか。apt使っているってことはDebianかUbuntuですよね。私が
試したのはFreeBSDなのですが、ライブラリやヘッダファイルの場所の違いが
影響しているんですかね。もう少し詳しく調べてみることにします。ありがと
うございました。
---
木村 康浩
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-12-20 5:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-20 3:05 [ruby-dev:50898] DBMモジュールが使うバックエンドをrubyをビルドする際に指定する方法について Yasuhiro KIMURA
2019-12-20 5:43 ` [ruby-dev:50899] DBMモジュールが使うバックエンドをrubyをビルドする際に指定する方法について Tanaka Akira
2019-12-20 5:55 ` [ruby-dev:50900] " Yasuhiro KIMURA
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).