ももんが家計簿とは
ももんが家計簿は、オブジェクト指向スクリプト言語 RubyのCGIで書かれた家計簿Web Application。ももんが家計簿をFreeBSD8以降で動かすときの問題点
ももんが家計簿はRuby 1.8.xをターゲットにしているので、Ruby 1.9以降で動かすには、いろいろと修正が必要になる。それを避けようとしてもFreeBSDのPorts/Packageには1.8系は含まれていないため、- 古いPorts/Packageのまま更新しない
- 野良ビルドする
rbenvで管理する
rbenvは複数バージョンのRubyを切り替えるツールで、FreeBSDのPackageでも提供されている。ruby-buildも入れてRubyの管理をこれで行えば、上記問題は解決できる。ももんが家計簿をrbenvで動かす
rbenv+ruby-buildの環境構築については省略。pkgで入れれば済むし、ぐぐるとたくさん記事が見つかる。CGIでrbenvをどう使うかというのが、ありそうで見つけられなかった。
結局
- /usr/local/rbenv ディレクトリを作成し、環境変数RBENV_ROOTにセットする
- ユーザrootでrbenv installでruby 1.8.7-p375をインストール
- ももんが家計簿のあるディレクトリで、rbenv local 1.8.7-p375と実行する。.ruby-version ファイルの中身が1.8.7-p375になっていればOK
次。CGIとして起動したとき、指定したバージョンのRubyになっているかを確認する。
#!/usr/bin/env /usr/local/rbenv/shims/ruby
require 'rbconfig'
p Config::CONFIG['ruby_version']
を、例えばruby.rbというファイル名でももんが家計簿と同じディレクトリに保存し、ブラウザからCGIとして呼び出す。headerを書いていないのでServer errorになるのだが、エラーメッセージで表示される数字がRubyのバージョンになるので、これで確認できる。1.8と表示されればOK。
最後に、ももんが家計簿のindex.rbとupdate.rbの1行目を
#!/usr/bin/env /usr/local/rbenv/shims/ruby
と書き換えれば対応完了。