/ / 最新

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)

最終更新時間: 2009-01-04 15:31


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