Ruby/GSL(rb-gsl)

いきなり研究室のサーバは気がひけるので、テスト用サーバに入れる。

yum -y install rb-gsl

失敗。観念してソースからインストール。stowを使う。
参考:Ruby/GSL
あらかじめsuしておくと無難。

wget http://rubyforge.org/frs/download.php/12235/narray-0.5.9.tar.gz
tar zxvf narray-0.5.9.tar.gz
cd narray-0.5.9
ruby extconf.rb
make install

  • plotutils

wget ftp://ftp.gnu.org/gnu/plotutils/plotutils-2.5.tar.gz
tar zxvf plotutils-2.5.tar.gz
cd plotutils-2.5.tar.gz
./configure --prefix=/usr/local/stow/plotutils-2.5
make
make install
stow -t /usr/local/ plotutils-2.5/

  • GSL

wget ftp://ftp.gnu.org/gnu/gsl/gsl-1.9.tar.gz
tar zxvf gsl-1.9.tar.gz
cd gsl-1.9
./configure --prefix=/usr/local/stow/gsl-1.9
make
make install
cd /usr/local/stow/
stow -t /usr/local/ gsl-1.9/

wget http://rubyforge.org/frs/download.php/10237/rb-gsl-1.8.3.tar.gz
cd rb-gsl-1.8.3.tar.gz
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install

あれ、Ruby/GSLをインストールするときに"narray.h"をオプションで指定するって話なかったっけ・・・。必要になったら後でやり直そう。"narray.h"の場所は"/usr/lib/ruby/site_ruby/1.8/i386-linux"らしい。

Ruby/GSLとnarrayは"/usr/lib/"に入るので、ここのサーバではsyncしてくれないかも。個別にやるのか・・・。
テストを実行してみる。

# ruby cdf.rb
/usr/lib/ruby/site_ruby/1.8/i386-linux/rb_gsl.so: /usr/lib/ruby/site_ruby/1.8/i386-linux/rb_gsl.so: undefined symbol: gsl_sf_debye_6 - /usr/lib/ruby/site_ruby/1.8/i386-linux/rb_gsl.so (LoadError)
from /usr/lib/ruby/site_ruby/1.8/gsl.rb:2
from cdf.rb:2

はい、残念!

stowやめてGSLを直接installしてみた。でもそれは問題じゃなかったのかも。エラーの内容は変わってなかった気がする。

で、結局、

export LD_LIBRARY_PATH=/usr/local/lib
export C_INCLUDE_PATH=/usr/local/include
ruby setup.rb config -- --with-narray-include=/usr/lib/ruby/site_ruby/1.8/i386-linux/
ruby setup.rb setup
ruby setup.rb install

これでテストはほぼ通るようになりました。
ライブラリ等々へのパスが通ってなくて、rb_gsl.soのコンパイルがうまくいってなかったってことかな?
だめならエラーはいてよ!
ライブラリのパスが通ってなくて、rb_gsl.soとライブラリのリンクがうまくいかなかったって可能性もある。
ところで、ruby setup.rb installしたファイルって一括で消せないのね・・・。恐ろしくて研究室のサーバに入れられないよ!