Saturday 13 September, 2014 [長年日記]
_ [tDiary] tDiaryをruby-1.9で動かす(1)
このサイトはさくらインターネットのレンタルサーバー上でtDiaryを使って動かしている。2014年9月現在でさくらのサーバーでインストールされているrubyは
% /usr/local/bin/ruby -v
ruby 1.8.7 (2012-10-12 patchlevel 371) [amd64-freebsd9]
とまだ1.8系がデフォルトとなっている。
一方でtDiaryの方は3.2.2でruby-1.8系のサポートを打ち切っており、それ以降のリリースではruby-1.9以降を用いないといけない。今まで何度かruby-1.9を動かすことにトライしてきたがどうもうまくいかなくてそのままにしていた。しかし今ではtDiaryも4.xになっているので思い立って再度やってみることにした。
まずはHome Directryにインストールするディレクトリを作った。何となくお作法にしたがって
% mkdir ~/local
を作りこの下にインストールするようにした。
最初にlibyamlをインストールする。本日の時点で0.1.5が最新である。
% curl http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz -O
% tar zxvf yaml-0.1.5.tar.gz
% cd yaml-0.1.5
% ./configure --prefix=$HOME/local
% make
% make install
次にgemをインストールする。
% tar zxvf rubygems-1.8.25.tgz
% cd rubygems-1.8.25
% ./configure --prefix=$HOME/local
% make
% make install
次に本丸のruby-1.9である。この時点での最新版はruby-1.9.3-p547なのでまず適当に取得する。configureするときには--with-opt-dir
でyamlのあるディレクトリを指定する必要がある。
% curl http://www.ring.gr.jp/pub/lang/ruby/1.9/ruby-1.9.3-p547.tar.bz2 -O
% bzcat ruby-1.9.3-p547.tar.bz2 | tar xf -
% cd ruby-1.9.3-p547
% ./configure --prefix=$HOME/local --with-opt-dir=$HOME/local
% make
% make install
これでローカルのディレクトリにruby-1.9が入ったわけだが、サーバーの方にあるruby-1.8より優先して読み込むためにはshellのPATHに$HOME/local/binを加えるのを忘れないこと。
% ruby -v
ruby 1.9.3p547 (2014-05-14) [x86_64-freebsd9.1]
_ [tDiary] tDiaryをruby-1.9で動かす(2)
ruby-1.9が動いたらあとはindex.rbとupdate.rbの冒頭にある
#!/usr/bin/env ruby
# -*- coding: utf-8; -*-
#
~
をruby-1.9で動くように絶対パスで
#!/home/username/local/bin/ruby
# -*- coding: utf-8; -*-
#
~
と書き換えるだけである。
はずだったが、今までは何度かトライしてもエラーが出てあきらめていた。tDiaryのメインストリームがすでに4.xになっているのでそちらで試してみたら無事に動いた。どうやらプラグインの中にruby-1.9と相性の悪いものがあるらしい。ということでいったんで動作させてプラグインはあとから追加することにした。よってtDiaryのアップデートには
- 新しいtDiaryを展開する。
- .htaccessとtdiary.confをコピーする。
- rubyや関連モジュールをアップデートする。
- 動作するかどうか確認する。
- 必要なプラグインを追加する。