月別アーカイブ: 2013年5月

squeezeからwheezyへのアップグレード

最近いくつかのDebian squeeze(6.0)環境をwheezy(7.0)にアップグレードしたので、その時に直面した問題などをここに記録してゆきます。何かあったら随時追記します。

makefile style init script(insserv)

devfsdというかなり古いパッケージがずっと残っていたのですが、これのせいでinit scriptの依存関係がループを起こし、insservがエラーを出してパッケージのconfigureが完了しない、という事態が起きました。

init scriptはsqueezeから依存関係が記述できるようになり、可能な限り並列でdaemonを起動しようとするのですが、devfsdはそれより古いパッケージ(そもそも現在使われていない)ものだったので、デフォルトで与えられる依存関係情報とmdadm-raidの依存関係とが循環参照を起こし、止まってしまいました。一時的にmdadm-raidからdevfsdの記述を削除することで、この問題は解決しました。

本来ならdevfsdなんてインストールすらされていないはずなので、バグレポートはしていません。

phpとrep2ex

2011年ごろのかなり古いrep2exをずっと使っていたのですが、wheezyのphp(5.3.3)で動いていたrep2exがsqueezeのphp(5.4.4)で正常に動作しなくなりました。

確実に動かないのはImageCahe2で、これは新しいphpでDataObjectクラスがsqlite2をサポートしなくなったことが原因です。MySQLかPostgreSQLを使うようにすれば動作します。

ただ、何も考えないとデータベースが移行できないので、データベースの初期化だけ行ってから、sqlite2 image.sqlite .dumpコマンドでエクスポートし、INSERT文だけ抽出してデータベースに食わせることでデータを引き継いでいます。

他に板の名前など一部の日本語が表示されない、という問題が起きているので、これの解決に取り組もうとしています。

最新のrep2exにアップグレードすることも検討したのですが、ディレクトリ構造を含め大きく変わっているので、とりあえず今のrep2exが使える状態になってから取り組もうと思っています。

今後進展があれば、随時更新してゆきます。

追記1(5/27)

rex2exの日本語が出ない問題は、php 5.3->5.4でのhtmlspecialcharsの挙動の変化が原因でした。デフォルトでは、エンコーディングの指定がないと5.3ではISO-8859-1、5.4ではUTF-8で処理しようとします。基本的に2chはSJISなので、日本語を含む文字列の変換に失敗して空の文字列を返してしまうようです。

あちこちにhtmlspecialcharsが存在していますが、ある程度機械的に置換してSJISを明示してやることで、大体動くようになりました。これで様子をみつつ、最新のrep2exに追従したいと思います。