at posts/single.html

tDiaryを最新版に追従

ここの日記で使っているtDiaryはずっと3.x系で動かしていたが、ようやく最新の4.0.4に更新した。

tDiary本体の更新

設置したtDiaryはgitで管理しているので、git pullで本体を更新する。

$ git pull origin master

いくつかカスタマイズしていたファイルがコンフリクトしたけど、1つずつ解消していった(基本は本体側に揃える)。3.x系の頃はこの後にtdiary-contribも更新していたけど、4.x系ではtdiary-contribもgemに分離されたのでgitでの更新は不要になった。

Gemfile.localの作成

tDiaryはバージョン4系からgemへの分離が進んでいて、今ではtdiary-contribや各種スタイルもgemでインストールするようになっている。

tdiary-contribやGFMスタイルのgemをGemfileに書くと、tDiary本体のバージョンアップのたびにGemfileがコンフリクトしてしまう。そこで、日記の設置者が導入するgemはGemfile.localに書く。tDiary-4.0.2 リリースノートを参照。

この日記はUnicornサーバで動かしているので、Gemfile.localにはこう書いた。

gem 'unicorn', :require => false
gem 'tdiary-contrib'
gem 'tdiary-style-gfm'

bundleコマンドを実行して、gemをインストールする。

$ bundle

独自スタイルファイルの削除

このままUnicornサーバを動かすと、GFMスタイルの読み込みでエラーになった。

E, [2014-08-18T15:05:14.521981 #20087] ERROR -- : app error: uninitialized constant TDiary::GfmDiary::DiaryBase (NameError)
E, [2014-08-18T15:05:14.522204 #20087] ERROR -- : /home/machu/var/tdiary/tdiary-core/tdiary/style/gfm_style.rb:138:in `<class:GfmDiary>'
E, [2014-08-18T15:05:14.522266 #20087] ERROR -- : /home/machu/var/tdiary/tdiary-core/tdiary/style/gfm_style.rb:137:in `<module:TDiary>'
E, [2014-08-18T15:05:14.522312 #20087] ERROR -- : /home/machu/var/tdiary/tdiary-core/tdiary/style/gfm_style.rb:21:in `<top (required)>'

これは tdiary/style フォルダに古いスタイルファイルが残っているのが原因。GFMスタイルもgemで入れるようになったので、削除してOK。

$ rm tdiary/style/gfm_style.rb

これで最新版に追従できた。tDiary本体もgemで管理できるようになっているので、あとで移行する。

関連する日記