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

Posted by nogajun - 2013/01/03

_

うちのサーバーはこの日記をはじめ、いくつか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 コピーしなくてもシムリンク貼ってあった