そろそろ]のDebian化にとりかかろう
去年の11月くらいから自宅サーバが全壊したり、さくらのクラウドに[Sumibi.org]環境を復元したりしているうちに、もう3ヶ月も経ってしまった。 そろそろ、落ちついたし懸案だった[Nendo]をDebian化しよう。
Debian化の話は、KOF2011:関西オープンソース2011で佐々木 洋平さん(twitterアカウント@uwabamiさん)に[Sekka]をDebian化してみませんかという提案をもらったことから始まっている。 そういえば、佐々木さんは今月のSDでDebianの記事を書いていらっしゃるのであった。 ヘビーユーザの佐々木さんのDebain愛を感じる。Debianの良さを再認識する良い記事です。
話は戻って、[Sekka]は[Nendo]やfuzzy-string-matchなど、いろんなソフトウェアに依存しているので、まずは[Nendo]から順番に攻めていこうと考えている。
Debianはもう10年以上も使ってきたが、Debian標準のrubyはほとんど使ったことが無く、いつもソースからrubyをビルドしていた。 deb版のgemsがどういう位置付けなのかわからない状態なので、そのあたりから調べてみるつもり。
以下、KOF2011:関西オープンソース2011の会場で @uwabamiさんに[Sekka]をDebian化する上で問題になりそうな部分を洗い出ししてもらった時のメモを公開しておきます。 誰かの役に立ては本望。非公開にしててももったいないないので。 (佐々木さん、当日はありがとうございました、かなり時間経っていますが…すみません) 去年中にDebian化できていればUbuntuに入っていくかもというタイムスケジュールだったけれども、また次を狙います。まあ焦らずにいきます。
deb化についての基本
基本はrubygems.orgにアップロードされたgemをdeb化する。
nendoの問題(v0.6.1)
- gemにRakefileが含まれていない
- rake testでテストが通るほうがよい。Debian化の提案がスムースに通りやすい。
fuzzy-string-matchの問題(v0.9.1)
- gemにRakefileが含まれていない
- rake testで走る RSpecのテストスイートがamatchに依存している。
- 配布したgemがamatchに依存しないように、rake testを修正したほうがいい。
- gitの開発リポジトリで rake bench でamatchとのベンチマーク比較が走ればよい。
sekkaの問題(v0.9.6)
- gemにRakefileが含まれていない
- rake testでテストが通るほうがよい。Debian化の提案がスムースに通りやすい。
- sekka-serverがDebian 6.0上のruby 1.9.xで動かない。
sekkaのような非標準ライブラリは vendor配下に置かれる。
例えば、sekkaconfig.rbは以下に置かれる。
/usr/lib/ruby/vendor_ruby/sekkaconfig.rb
そのパスをrequireするコードは、
requrie 'rbconfig'
と
RbConfig::CONFIG* 'libdir' * RbConfig::CONFIG* 'vendor_dir' *
を使って環境に依存しないようにすること。
- 辞書データのインストール方法には工夫が必要。 Webマイニングしたデータを含むので、パッケージインストールしてから辞書を取りに行くなど工夫が必要。