tDiaryをバージョンアップした

うちのサーバーはこの日記をはじめ、いくつかtDiaryが動いているのだけど、Rubyは1.8だし、いろいろあってバラバラのバージョンのtDiaryが動いててちょっと気持ち悪い状態だったのでDebianパッケージのtDiaryを使うように変更してバージョンアップしました。
が、これが大変でした。
移行前にVirtualBoxで試したときは、うまくいったのでそれほど時間かからず終わるかと思って2日遅くから作業を始めたら、昔の設定ミスで画像が表示されていないページを発見したり、思わぬ不具合に遭遇したりして結局まるまる1日がかりになってしまいましたとさ。
ということで不具合メモ。
blogkitのarchive_dropdownプラグインとdropdown_calendarプラグインでリンクが「YYYYMM.html」形式にならない
SilverRecipeのサイトで、サイドバーのarchive_dropdownプラグインから移動できるかテストしたら、リンクURIが「YYYYMM.html」とならず「?date=YYYYMM」ってなってた。
「えー!」っと思って調べたけど、html_anchorプラグインは有効だし、mod_rewriteでマッチしているよう。YYYYMM.htmlでアクセスしても問題なくアクセスできるから、もういいかと諦めたらdropdown_calendarプラグインも同じような状態ということを発見。 とりあえず、自分のところはdropdown_calendarを外して変更して対処。
DebianパッケージのtDiaryは3.1.3なのでtDiary 3.2をダウンロードして確認したけど、症状が同じだったので、これはDebianパッケージの問題じゃなくてtDiaryの問題かも。
Debianパッケージのままの依存関係ではGFMスタイルが使えない(使えました)
tDiaryの記法にGFM(Github Flavered Markdown)スタイルが入ってたので試してみようかと スタイルをコピーして*1tdiary.confを変更して、pygments_cssプラグインを有効にしたらこんなエラーが出た。
Plugin Error
Errors in plugins? Retry to Update or Configure.
TDiary::PluginError
Plugin error in '50sp.rb'.
Plugin error in '/usr/share/tdiary/contrib/plugin/pygments_css.rb'.
cannot load such file -- pygments
(plugin/50sp.rb):132:in `rescue in block (3 levels) in load_plugin'
/usr/share/tdiary/tdiary/plugin.rb:65:in `rescue in initialize'
/usr/share/tdiary/tdiary/plugin.rb:56:in `initialize'
/usr/share/tdiary/tdiary.rb:225:in `new'
/usr/share/tdiary/tdiary.rb:225:in `load_plugins'
/usr/share/tdiary/tdiary.rb:377:in `load_plugins'
/usr/share/tdiary/tdiary.rb:186:in `do_eval_rhtml'
/usr/share/tdiary/tdiary.rb:162:in `eval_rhtml'
/usr/share/tdiary/tdiary/dispatcher/update_main.rb:31:in `run'
/usr/share/tdiary/tdiary/dispatcher/update_main.rb:6:in `run'
/usr/share/tdiary/tdiary/dispatcher.rb:21:in `dispatch_cgi'
/usr/share/tdiary/update.rb:36:in `<top (required)>'
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
update.rb:7:in `<main>'
Configureのリンクをクリックしても設定画面に戻れないし、ちょっと焦ったけれど日記データにあるtdiary.confのプラグイン設定からpygments_css.rbを削除してひとまず設定画面には戻れた。
で、原因を探ってたけど結論から書くとRuby関連のパッケージが足りなかった。 ということでruby-albinoとruby-yajlパッケージ、gem2debでpygments.rbパッケージを作って放り込んで使えるようになった。
$ sudo apt-get install ruby-albino ruby-yajl
$ gem2deb pygments.rb
$ sudo dpkg -i ruby-pygments.rb_0.3.7-1_all.deb
これはtdiary-contribパッケージにBTSしてたほうがいいかな。
複数行の整形済みテキストが使えない
とりあえずエラーはなくなったけど、複数行の整形済みテキストがうまくパースされない。
```
# ほげほげ
```
こんなシェルスクリプトのコメント行が見出しになってしまう。 なにかライブラリが足りないのかな?とりあえずWikiスタイルに戻す。
*1 コピーしなくてもシムリンク貼ってあった