さくらインターネット上で tDiary を ruby1.9.1-p0 で動かす
tDiary が Ruby1.9 でもだいぶ安定してきたみたい。 結局 tDiary の Ruby1.9 対応にあまり貢献できてないので、せめて人柱になってみる。 と言うわけで、この日記を ruby1.9.1-p0 で動かすようにした。 以下はその手順。
前提
UTF-8 化された tDiary 2.3 系で日記を動かしていること。 tDiary2.2 + Ruby1.8 からいきなり tDiary2.3 + Ruby1.9 にアップデートするのはできないかも。
Ruby1.9.1 のインストール
公式サイトのダウンロードページから ruby 1.9.1-p0 をダウンロードする。 コンパイルとインストールはいつもどおり。 レンタルサーバなので --prefix=$HOME を指定しているくらい。
$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.gz $ tar zxvf ruby-1.9.1-p0.tar.gz $ cd ruby-1.9.1-p0 $ ./configure --prefix=$HOME $ make $ make install
これで Ruby のバージョンが 1.9.1p0 になった。
$ ruby --version ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-freebsd6.1]
tDiary のアップデート
tDiary 本体とプラグイン (公式, contrib) を、リポジトリの最新版にアップデートした。 ここではいきなり稼働中の日記をアップデートしているけど、ちゃんと事前にバックアップをとっておくこと。
$ cd www/diary $ svn info Path: . URL: http://tdiary.svn.sourceforge.net/svnroot/tdiary/trunk/core (略) $ svn update
$ cd misc/plugin $ svn info Path: . URL: http://tdiary.svn.sourceforge.net/svnroot/tdiary/trunk/plugin (略) $ svn update
$ cd ../plugin2 $ svn info Path: . URL: http://svn.coderepos.org/share/platform/tdiary/plugin (略) $ svn update
index.rb と update.rb の書き換え
index.rb と update.rb の一行目に書かれている ruby のパスを、先ほどインストールした ruby1.9 の場所に書き換える。
#!/home/machu/bin/ruby # -*- coding: utf-8; -*-
それから、ファイルの拡張子を .rb から .cgi へとリネームする。
tDiary キャッシュの削除
Ruby1.8系で動かしていたときの tDiary のキャッシュが残っていると、 Ruby1.9 系では動かない。 なので、 tDiary のキャッシュを削除する。 間違って日記本体を消さないように、慎重に…。
$ cd ~/var/tdiary/cache $ rm -rf *
カテゴリプラグインのキャッシュは別フォルダにある。
$ cd ~/var/tdiary/category $ rm -rf *
これで、日記がちゃんと表示・更新されれば、ひとまず移行完了。 一見したところ、特に問題なく動いているみたい。
カテゴリプラグインのキャッシュ生成
さっきキャッシュを消したので、 tDiary の設定画面を開いて「カテゴリ」→「カテゴリインデックスの作成」を実行する。 …と、以下のようなエラーが表示された。
500 Internal Server Error can't convert nil into Hash (TypeError) (plugin/category.rb):599:in `update' (plugin/category.rb):599:in `block (2 levels) in initial_replace_sections'
途中まではカテゴリインデックスが ~/var/tdiary/category に生成されているので、日記データ側に問題があるような気がする。 まぁ、大きな問題じゃないので、あまり気にしない。