[prime-dev: 124] Re: primeのFreeBSD portsバージョンアップ中なのですが、

Back to archive index

Gen Otsuji gen_otsuj****@yahoo*****
2004年 1月 21日 (水) 16:18:39 JST


尾辻です。

> ruby と ruby_r という 2つのコマンドがあって 
> /usr/local/bin/ruby と /usr/local/bin/ruby_r のように
> 共存しているのか、ruby と ruby_r の 2つのパッケージがあって
> ruby コマンドの実体はどちらのパッケージが提供する実体への
> エイリアスなのか、どちらでしょうか。

前者の方です。rubyとruby_rは共存しています。別の実体です。
libc_r.soを使う方がruby_rです。
portsの方で/usr/local/bin/primeの一行目のrubyをruby_rにする処理を
していました。
ですから4.xではruby_rを使うようにすればいいのですが、
5.xのどこからかlibmapというlibxxx.so.xへのリンクを
を動的に変更できるシステムができているのでそれを試してみました。
/etc/libmap.confに次の2行を書いて

[/usr/local/lib/ruby/site_ruby/1.6/i386-freebsd5/sary.so]
libc_r.so.5                 libthr.so.1

こうするとlibc_rを使うところをlibthrを使ってくれます。
そしてruby_rでなくrubyで
----------test.rb----------
#!/usr/local/bin/ruby
require 'sary'
while line = $stdin.gets do
  p line
end
---------------------------
% ./test.rb

これを試したところ、libcとlibc_rとの相性問題が解消されて、
libthrのスレッドライブラリがうまく使われたようでエラーが出なくなりました。
もちろんlibmapへの記述を消すとエラーになりました。
ということでこれからのFreeBSD-5.xではruby_rを使わずにrubyを使えば
いいということになりました。

------
おつじ




Prime-dev メーリングリストの案内
Back to archive index