RubyでFFTなどの数値計算や描画を行うために色々と環境設定やインストールを行った。
インストールしたしかし各種ライブラリ・ラッパーのインストールがなかなか個人的に骨の折れる作業だっため、後から困らないようにメモ程度に書き残しておく。インストール環境はUbuntu10.04、Ruby 1.8.7。gemでもインストールできないことはないみたいだが、俺の場合は各種ライブラリのインストールに手こずりまくったので結局使わなかった(gemは普段1.3.5を使用)
ライブラリーをインストールする前に
まずはruby-devをインストールする。これがないとNArrayのインストール時にコケる。(mkmfがないとか言われる)
$ sudo apt-get install ruby1.8-dev
NArray
大規模多次元数値配列を高速に処理するライブラリ。まずはこれがないと始まらないので真っ先にインストールする。ソースはここで公開されているのでダウンロード。俺は0.5.9p9.tar.gzをダウンロードした。そして解凍、コンパイル、インストール
$ tar xvzf narray-0.5.9p9.tar.gz $ cd narray-* $ ruby extconf.rb $ make $ sudo make install $ cd ..
NArrayがインストールできたら次は拡張ライブラリーであるlibnarrayをインストールする。
$ sudo apt-get install libnarray-ruby1.8
次にNArrayがインストールされたか確認
$ irb
irbを起動し(irbを入れてない場合は事前にインストールする)
irb(main):001:0> require "narray" => true
このようにtrueが返されたらインストール成功。
Ruby/GSL
次にRubyの数値計算ラッパーであるRuby/GSLをインストールする。その下準備として数値計算ライブラリーであるGSLと付属の描画ライブラリであるplotutilsをインストールする。
plotutils
まずはplotutilsからインストール。ソースはftp://ftp.gnu.org/gnu/plotutils/。最新のバージョンは2.6だが、Ruby1.8にこれを入れるとインストール時に不具合が起こるので、バージョンは2.4.1を入れたほうが無難かもしれない。ちなみに2.4.1を入れる時点でflexがないと
configure: error: cannot find output from lex; giving up
というエラーが出てconfigureに叩かれるので、あらかじめ入れておく。
$ sudo apt-get install flex
$ wget ftp://ftp.gnu.org/gnu/plotutils/plotutils-2.4.1.tar.gz $ tar xvzf plotutils-2.4.1.tar.gz $ cd plotutils-* $ ./configure $ make $ sudo make install $ cd ..
GSL
次はGSL。apt-getの場合は
$ sudo apt-get install gsl-bin
上手くいかない場合はNArrayと同じくソースからコンパイルする。というかソースからコンパイルしたほうが確実。今回はバージョン1.9をインストールしたが、不具合が出たら1.7をインストールする。
$ wget http://core.ring.gr.jp/pub/GNU/gsl/gsl-1.9.tar.gz $ tar xvzf gsl-1.9.tar.gz $ cd gsl-* $ ./configure $ make $ sudo make install $ cd ..
Ruby/GSL
いよいよRuby/GSLをインストールする。インストールしたバージョンは1.14.4
$ wget http://rubyforge.org/frs/download.php/72647/rb-gsl-1.14.4.tar.gz $ tar xvzf rb-gsl-1.14.4.tar.gz $ cd rb-gsl-* $ ruby setup.rb config $ ruby setup.rb setup $ sudo ruby setup.rb install $ cd ..
以上でインストールができたはず。以下、確認
$ irb irb(main):001:0> require "gsl" => true
インストール完了。
Ruby/DCL
次は描画ラッパーであるDCLをインストールする。
DCL
例のごとく本家である描画ライブラリーのDCLをまずインストールする。しかしながらGTK+とNArrayMissが入っていないとDCLのインストール時にエラー出るので事前にいれておく。
GTK+のインストールは
$ sudo apt-get install libgtk2.0-dev
NArrayMissのインストールは
$ wget http://ruby.gfd-dennou.org/products/narray_miss/narray_miss-1.2.1.tar.gz $ tar xvzf narray_miss-1.2.1.tar.gz $ cd narray_miss-* $ ruby setup.rb config $ sudo $ ruby setup.rb install $ cd ..
GTK+が入ったらDCLのインストールを開始
$ wget http://www.gfd-dennou.org/arch/dcl/dcl-5.3.4.2-C.tar.gz $ tar xvzf dcl-5.3.4.2-C.tar.gz $ cd dcl-*-C $ ./configure $ make $ sudo make install $ cd ..
Ruby/DCL
DCLが入ったらラッパーであるRuby/DCLのインストール。
$ wget http://ruby.gfd-dennou.org/products/ruby-dcl/ruby-dcl-1.6.2.tar.gz $ cd ruby-dcl-* $ cd lib
ruby-dcl-*の中にlibというディレクトリがある。そこを開くとdcl.rbというファイルがあるのでエディタで開き、冒頭に
require "gtk2"
を追加し保存。その後ruby-dcl-*ディレクトリに戻る。そして
$ ./configure $ ruby extconf.rb $ make $ sudo make install $ cd ..
これでエラーが出なければインストール完了。
以下、確認。
$ irb irb(main):001:0> require "numru/dcl" => true
追記
Ruby/DCLのインストールに関してはrequire "gtk2"と書かなくてもインストールできる場合もあるっぽい。なぜだかわからんが適材適所で。
追記2
ruby1.8.7の場合、GSLが1.7、Ruby/GSLが1.10.3でないとエラーが出る模様。俺の環境の問題かもしれないが、最新バージョンを入れるとRuby/GSLのインストールの際にmatrix_complex.cでエラーが出る・・・。ruby1.9だったらいけるのかな
参考サイト
- http://diaspar-journal.blogspot.com/2009/01/rubygsl-narray-r.html :NArray、DCL、GSLなどのインストールやサンプルプログラムなど
- Rubyist Magazine - Ruby Library Report 【第 5 回】 数値計算と可視化 :数値計算・可視化ライブラリーなどの紹介