Rastが動きません(2)

まず BerkeleyDBが新しすぎるのかなあと思い、4.3.28から 1世代戻って 4.2.52をインストール。再度 rastをコンパイルして examples(Cバインディングの方)を実行してみるとちゃんと動く!なんだよこれが原因か、と思いきや rubyバインディングの方(examples/ruby配下)を実行するとやっぱり openでこける。rastをデバッグオプションつきで再度コンパイルして実行。 local_db.cの

dberr = db->bdb_env->open(db->bdb_env, db->path, flags, 0666);

で Invalid Argumentで落ちているところまでわかった。後は bd->bdb_envの中を追って、動くときと動かないときとで何が違うのか探ればいいのだが…。今回はここで力尽きた。

Rast::DB.openがだんまりになります

このページにも検索機能をつけたいな、と思ってちょっと調べてみると rastがなかなかよさげなので、これをインストールしてみることにした。

散々苦労したあげく(後でちゃんと書くこと)コンパイルまではなんとか通したのだが、インデックスの作成を実行するとなかなかプロンプトが帰ってこない。単に時間がかかっているだけか、と思ったがデータファイルのタイムスタンプを見ると大分前から全然更新されていない。これはなんかおかしいと思って、調べてみるとどうも Rast::DB.openを実行したところでだんまりになっているようだ。createはうまくいってそうなだけに openで失敗する理由がよくわからん。

レンタルサーバなだけに必要なライブラリをローカルにインストールしまくってむりくりそっちを呼ぶようにしていたりするのが悪いんだろうか。あとちょっとなんだけどな。ちなみに環境は以下のとおり。

  • FreeBSD 4.8-RELEASE-p29
  • ruby 1.8.2 (2004-12-25) [i386-freebsd4]
  • rast-0.2.0
  • apr-1.1.1
  • BerkeleyDB-4.3.28

というわけでサイドバーにある検索機能はまだ動きません。あしからず。

rast
http://www.netlab.jp/rast/

Exerbメモ

ログ解析ツールを rubyで書いて Exerbで exe化してみたのでメモっておく。Exerb関連のドキュメントってあまりないみたいだし何かの参考になれば。あ,Exerbのバージョンは 3.2.0です。

exe化

まずレシピファイルの生成。手動で .exrファイルを作ってもいいみたいだが,とりあえず自動で作ってみる。

次に,といっても最終工程だけど exe化。

-c guiオプションは GUI化するため。つけなくても問題ないが,exe実行時に DOS窓が開いてしまってかっこ悪いのでつけておいたほうがいい。生成された foo.exeを実行してみて問題ないようなら OK。

__FILE__や $0の扱い

exerbでは通常と異なり __FILE__や $0に実行ファイルのパスが入らないので,実行ファイルと同じ場所に結果ファイルを出力したい場合などに困ったことになる。というか実際困った。いくら探しても結果ファイルが見つからないんだもの。最初はバグかと思ったよ。やっと見つけたと思ったら C:?Documents and Settings配下に出来てて意味分からないし。これは

  • http://lists.sourceforge.jp/mailman/archives/exerb-developer/2003-September/000374.html

からのスレッドに対処法が説明されている。結論としては

のようなコードで,exerbで exe化された場合もそうでない場合も実行ファイルのパスを取得することができる。