[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:001108] Re: ruby-dcl, advanceddcl install



ごとけんです

At Tue, 19 Mar 2002 23:41:46 +0900,
Shin-ichi Takehiro wrote:
> どちらもデフォルトでは /usr/local/lib/ruby 以下へインストールされるようですが, 
> これを例えば (どっかのディレクトリ)/usr/lib/ruby にするには
> どのように設定すればいいのでしょう? 

えっとruby自身は、インストール時に決定されたライブラリディレクトリのあ
りかを ruby -r rbconfig -e 'Config::CONFIG["sitearchdir"]' などで知る
ようになっていて、mkmf.rbはこのCONFIGの値をMakefileに書き出します。通
例ではextconf.rbはこのmkmf.rbを使います。つまり、extconf.rbを実行した
インタプリタのCONFIGが使われる仕組みになっています。

なんでかというと、インストールが済んだあとでインタプリタが拡張ライブラ
リをロードする場合に、インタプリタがライブラリのパスを知る必要があるか
らです。

> もしも ruby がシステム管理者によってインストールされている状況で, 
> 一般ユーザが自分のホームディレクトリに拡張ライブラリを
> インストールするようなことはできますでしょうか. 

パスを外から指定できるようにextconf.rbに書かれていない場合はパッケージ
が拡張ライブラリをビルドする際にパッチを当ててextconf.rb内の大域変数
$sitearchdirを書き換える必要があります。

しかし、mkmf.rb:arg_config() などを使えば任意のオプションをコマンドラ
イン引数から容易に受けとることができるので、必要であればできるだけ拡張
ライブラリの作者にオプションを用意してもらうのが良いと思いでしょう。

# 昔これに気づいていなかったので自作mkmf.rbなんてものを用意してしまった
# のは僕の罪です :<

それと $sitearchdir 以下にインストールする場合は make のインストールター
ゲットとして install ではなく site-install を使う必要があります。

またユーザーは自分の追加したいライブラリパスを環境変数RUBYLIBにPATH変
数形式で与えることができます。

ちなみに僕はinstallに成功してません... gtk.so が死ぬけど元気がないので
まだ追求してません

-- Gotoken