Redmine で色々とハマった件
環境は以下のとおり
- CentOS5.1
- Subversion 1.4.2
- Apache2.2.4
- Ruby1.8.5
- RubyGems 1.1.1
うろ覚えだけどこんな感じ。
リポジトリブラウザが見えない
これは簡単。
$ sudo /etc/init.d/httpd startという風に実行すると環境変数$HOMEを引き継ぐという sudo の罠にハマっただけ。 CentOS の場合は$HOMEは基本的にそのユーザしかアクセスできないので $HOME/.subversion 以下に ある情報にアクセスしようとしてエラーになっていた。
$ sudo -H /etc/init.d/httpd startでOK
リポジトリブラウザでファイル名やディレクトリ名が日本語である場合の不具合
ファイル名やディレクトリ名に日本語が使用されている場合に、正確に内容が表示されないことがあった。 原因は、環境変数 LANG がセットされていないことであった。
HTTP_LANG=ja_JP.UTF-8を /etc/sysconfig/httpd にセットすればOK
チケット一覧のエクスポートで文字化け
丸付き数字や機種依存文字を使用していると文字化けするので RAILS_ROOT/lang/ja.yml を以下のように修正する。
Index: lang/ja.yml
===================================================================
--- lang/ja.yml (リビジョン 1322)
+++ lang/ja.yml (作業コピー)
@@ -49,8 +49,8 @@
general_text_yes: 'はい'
general_lang_name: 'Japanese (日本語)'
general_csv_separator: ','
-general_csv_encoding: SJIS
-general_pdf_encoding: UTF-8
+general_csv_encoding: CP932
+general_pdf_encoding: CP932
general_day_names: 月曜日,火曜日,水曜日,木曜日,金曜日,土曜日,日曜日
general_first_day_of_week: '7'Windows クライアントが多い場合はこれでほぼ文字化けが無くなる。UTF-8環境で使う人ばかりなのであれば 両方共 UTF-8 にしてもいいかもしれない。多分、PDFのエクスポートがダメっぽいけど。
ついでなので、書いておくと上記修正で文字化けは無くなるけど、セルの最後の一文字が消滅する場合がある。 これは、 Redmine が悪いのではなくておそらく rfpdf がおかしいのだと思う。
# znz さんのパッチをあてても直らなかった。
これについては、現在調査中。
Trac からの移行が失敗する
Ruby1.8系の String#[] は文字単位ではなくてバイト単位なので RDBMS の文字の数え方とずれる。 ActiveSupport がなんとかしてくれそうな気がしたけど自分で適当に修正した。
class String
alias [] original_indexer
def [](start_pos, end_pos)
self.split(//)[start_pos, end_pos].join
end
endこんな感じで。String#[] は色々な呼び出し方ができるのでこんなパッチはイケてないのでよいこは真似してはいけませんよ。
本来なら以下のようなメソッドを定義してタスク中で String#[] を呼んでいる部分を修正するのが良いはず。
class String
def mb_substr(start_pos, end_pos)
self.aplit(//)[start_pos, end_pos].join
end
end一応、本家にはチケットあげたのでそのうち直るはず。
Posted in Ruby | no comments |