今まで使ってたメイルネットのサーバでは perl 5.005_03 (i386-freebsd) が使われていた.モジュール群はあまり揃っていなかったので,必要なもの は ~/lib/perl に自分でインストールして使っていた.
さくらインターネットでは,/usr/bin/perl は v5.8.4 (i386-freebsd-64int).モジュールもそこそこ揃っている.これなら自前で モジュールをインストールする必要はないかなと思っていたけど,甘かった.
Storable に互換性がない.
tb.cgi では,トラックバックのデータの保存に Storable が使われている. そのデータが読めなくなってしまった.Storable::retrieve が「Byte order is not compatible」とおっしゃっている.うーむ.
幸い,さくらインターネットのサーバには perl 5.005_03 built for i386-freebsd も /usr/bin/perl5 としてインストールされているので,こっ ちを使うことにした.こっちのバージョンではモジュールがあまり揃ってい ないらしい.というわけでメイルネットのサーバで使っていた ~/lib/perl 以下をごっそりコピーして使うことにする.再コンパイルとかせずにそのま まで動くのはありがたい.
他の CGI (clsearch, kuttukibbs, noascii) は perl v5.8.4 で問題なく動くようなのでそちらで動かす.ただし use lib で ~/lib/perl を指定しているとモジュールの互換性の問題で動かないので, 指定を止める.
とりあえずはこれでいいけど,いつまでもこのままってわけにもいかないか な.過去データをまとめて新しいファイル構造に変換して,v5.8.4 に移行 するようにした方がいいかも知れない.調べてみると,Data::Dump を使っ て一旦テキストとして吐き出させるという方法があるらしい.そのうち試し てみるか.
おまけ.というかちょっとだけはまった落とし穴.
さくらインターネットのサーバには,以下の 2 種類の perl がインストー ルされている.
そして以下のような symlink がある.
/usr/local/bin/perl5 は 5.005_03 を指しているのが自然だよなあ.どう してこんなことになっているんだか.
最終更新時間: 2008-04-13 16:55
* [かがみ] なるほど,そうかも知れませんね.しかしそうだとすると /usr/bin/perl... (2006-03-27 04:45:47)
* [otsune] >どうしてこんなことになっているんだか.おそらく、/usr/local/b... (2006-03-26 21:21:18)