斎藤と申します。

調べてみました。結論からすると、スクリプト実行時ではなく、
gsl gemをビルド・インストールする「前に」plotutil
(具体的にはgraphコマンド)をインストールする必要がありそうです。

エラーメッセージが出たのはこの辺りだと思うのですが、
https://github.com/SciRuby/rb-gsl/blob/master/ext/gsl_native/graph.c#L1225
これを出さないためには HAVE_GNU_GRAPH がdefineされてる必要が
あります。それでどういう条件でdefineされてるか、extconfを見ると
https://github.com/SciRuby/rb-gsl/blob/master/ext/gsl_native/extconf.rb#L146
とあり、どうもビルド時にgraph(1)がないとコンパイルされるコードが
変わってしまうのだな、というのが分かります。

しかし(エラーメッセージと相まって)他にもハマる人が出そう
なので、

・エラーメッセージに "when built" とかを足す(楽なコース)
・graphコマンドのチェックをビルド時でなく実行時に移動させる
(本質的なコース)

というようなPull Requestを送ると、みんな幸せになれて良いのでは
ないか、と感じました。

2017年3月30日(木) 14:10 konami <konami / kyoto-wu.ac.jp>:

> 小波です。
>
> Bootstrap という 多数回のサンプリングを繰り返す統計計算があり,
> それを Ruby/GSL でやってみようと思ってこの間から格闘しています。
>
> その中で,ヒストグラム作成の処理のために Histogram クラスを利用しようと
> 次のソースを走らせてみましたが,その下のようなエラーを吐いてしまいます。
> ------------------------------------------------------
> #! /usr/bin/env ruby
> require "gsl"
> include GSL
> N = 10000
> MAX = 8
> rng = Rng.alloc
>
> data = Ran.gaussian(rng, 1.5, N) + 2
> h = Histogram.alloc(100, [-MAX, MAX])
> h.increment(data)
>
> sigma, mean, height, = h.fit_gaussian
> x = Vector.linspace(-MAX, MAX, 100)
> y = height*Ran::gaussian_pdf(x-mean, sigma)
> GSL::graph(h, [x, y], "-T X -C -g 3")
> #出典:
> #http://blackwinter.github.io/rb-gsl/rdoc/hist_rdoc.html
> ---------------------------------------------------
>
> ./gsltest.rb:15:in `graph': GNU plotutils required (NoMethodError)
>      from ./gsltest.rb:15:in `<main>'
>
> ちなみ, plotutils, lipplot-dev はインストールされています。
> 何かヒントをいただけると幸いです。
>
> 小波秀雄
>
> --
斎藤 匡