Web 上を漁っても、そういう問題について語ったドキュメントが全然見つからないので弱っていたが、やっと見つけた。
FreeBSD 4.9-R の人だけど俺と症状一緒。
どうも、Ruby のバージョンが新しいと、cgi.rb という lib がバグっているらしい。
serv2# find / -name "cgi.rb" -print
/usr/local/lib/ruby/1.8/cgi.rb
これ。
この掲示板にかかれている内容で対処してみる。
serv2# find / -name "cgi.rb" -print
/usr/local/lib/ruby/1.8/cgi.rb
serv2# cp -p /usr/local/lib/ruby/1.8/cgi.rb /usr/local/lib/ruby/1.8/cgi.rb_org
serv2# vi /usr/local/lib/ruby/1.8/cgi.rb
で、見てみると、
まさに問題のある、
eval <<-END
def body.local_path
#{body.path.dump}
end
END
という内容。
掲示板にあるとおり、
eval <<-END
def body.local_path
#{(body.class == StringIO)? "" : body.path.dump}
end
END
と直す。
・・・が駄目。やっぱアップロードされない。
@secure = false でやってっから、ほとんど制限事項もないはずじゃし。
結局、Ruby のバージョンを落とすはめに・・・
1.8系から 1.6系(ruby-1.6.8.2003.10.15)にしたら image.rb が使えるように。
これって、FreeBSD ユーザーが packages から ruby を入れた場合にけっこう陥りやすい問題じゃなかろうか。Ruby 公式サイトのわかりやすいところからリンクがほしいよのお。