(Documentation) hikiのアップグレード
作成者:西本絵梨子
編集履歴:
- 2015-11-14(Sat): 新規作成
- 2015-11-29(Sun): プラグイン関係のパッチ当てを追記
- 2016-3-4(Fri): 添付ファイルのリンク切れを訂正
目次:
概要
Debianのバージョンをwheezyからjessieにアップグレードするにあたって、 hikiのバージョンも 0.8.8 から github <URL:https://github.com/hiki/hiki> の最新版 (2.0.0.pre1; 2015-11-14現在) に変更した。
これに伴ない、hikiで使用するrubyのバージョンが1.8から2.1に変更され、文字コードもEUC-JPからUTF-8に変更になった。
そのため、データ ( data/ 以下 ) の文字コードを変更する必要がある。
作業手順
- Hiki移行
- 文字コードの変換
- プラグイン関係のパッチ当て
1. Hiki移行( レポジトリ取得からデータ移行まで )
まずは、gitレポジトリから最新版ソースを取得。
% git clone https://github.com/hiki/hiki.git % cd hiki
つぎに、データを移行する。
% rm -rf data % rsync -avz /backup/hiki/data . # バックアップからコピー % sudo chown www-data:www-data -R data/ # apacheが読めるように権限を変更
設定ファイルの設定。hikiconf.rb の @charset = 'UTF-8' にしておくこと。
% ln -s dot.htaccess .htaccess # .htaccess % cp /backup/hiki/hikiconf.rb . # hikiconf.rb をバックアップからコピー
plugin/attachを使う場合は、<URL:http://hikiwiki.org/ja/attach.rb.html>に書いてあるように、hiki.cgi のあるディレクトリに misc/plugin/attach/attach.cgi をコピーする。 その後、「管理」->「プラグイン選択」で attach.rb を有効にする。しかし、attach.cgiとattach.rbにパッチを当てる必要がある。「3. プラグイン関係のパッチ当て」を参照のこと。
2. 文字コードの変換
hikiconf.rb
hikiconf.rb は手動で変換。
% nkf -w8 --overwrite hikiconf.rb
data
data/ 以下の変換には、tool/convert.rb を使用する。 プラグインでkeyword.rbを使用している場合は、このままでは"keyword"の項目の文字コードが変換されないので訂正が必要。
% diff -u tool/convert.rb.org tool/convert.rb --- tool/convert.rb.org 2015-11-14 23:14:14.607480264 +0900 +++ tool/convert.rb 2015-11-14 23:35:17.787495781 +0900 @@ -24,6 +24,7 @@ db[d][:references].map! do |r| encode(r, input_encoding, output_encoding, nkf) end + db[d][:keyword].map!{|r| encode(r, input_encoding, output_encoding, nkf) } end db.roots.each do |d| d_new = Hiki::Util.escape(encode(Hiki::Util.unescape(d),
hiki/util.rbも変更を加えておいたほうが、エラーが低減される。
% diff -u hiki/util.rb.org hiki/util.rb --- hiki/util.rb.org 2015-11-09 11:42:39.082206783 +0900 +++ hiki/util.rb 2015-11-09 11:44:11.237932017 +0900 @@ -66,6 +66,7 @@ # escapeHTML('Usage: foo "bar" <baz>') # # => "Usage: foo "bar" <baz>" def escapeHTML(string) + string=string.encode("UTF-16BE","UTF-8",:invalid=>:replace, :undef =>:replace, :replace=>'?').encode("UTF-8") CGI.escapeHTML(string) end
データの文字コード変換を行なう。
% sudo -u www-data ./tool/convert.rb -i euc-jp -o utf-8 --nkf -D ./data > log 2>&1
logファイルを見て、エラーが出ていなかったらOK。
data/hiki.conf の文字コードの変換はうまくいっていないので、手動で書き直す。site_name や author_name の項目など。
3. プラグイン関係のパッチ当て
plugin/attach
attach.rb と attach.cgiにパッチ当て。<URL:https://github.com/hiki/hiki/issues/51>参照。
- attach.rbのパッチ: misc_plugin_attach_rb.patch
- attach.cgiのパッチ: misc_plugin_attach_cgi.patch
キーワード:
参照: