/ / 最新

swk's log - Storable の互換性

2006-03-25

* Storable の互換性 [logging][homenet]

今まで使ってたメイルネットのサーバでは 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 がインストー ルされている.

  • /usr/bin/perl5 ... 5.005_03 built for i386-freebsd
  • /usr/local/bin/perl ... v5.8.4 built for i386-freebsd-64int

そして以下のような symlink がある.

  • /usr/bin/perl -> /usr/local/bin/perl (つまり v5.8.4)
  • /usr/local/bin/perl5 -> /usr/local/bin/perl5.8.4 (/usr/local/bin/perl と同じ hard link)

/usr/local/bin/perl5 は 5.005_03 を指しているのが自然だよなあ.どう してこんなことになっているんだか.

関連記事:
[2008-04-13-1] tb-standalone の perl 5.005 → 5.8 移行
[2006-03-25-2] サーバ移転
[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [かがみ] なるほど,そうかも知れませんね.しかしそうだとすると /usr/bin/perl... (2006-03-27 04:45:47)

* [otsune] >どうしてこんなことになっているんだか.おそらく、/usr/local/b... (2006-03-26 21:21:18)

最終更新時間: 2008-04-13 16:55


Shingo W. Kagami - swk(at)kagami.org