Archive

Archive for 2012年1月

Fedora16にしたらPerlのSocketがクラッシュした

メインサーバーをFedora16にアップグレードしたら悲惨なことになった話。
いや、アップデート自体は(/var切った時のバグを踏んだ以外)問題なく終わったんで気を抜いてたら・・・

Cronの吐いたメールが百数通単位で。どうしてこうなった。
どうやらmuninがコケて5分に一回エラー出してるようで、
/usr/bin/perl: symbol lookup error: /usr/local/lib64/perl5/auto/Socket/Socket.so: undefined symbol: Perl_Istack_sp_ptr
のメールが多数。

とりあえず状況を把握しよう。
・PerlのSocketモジュールはPerlでないので、ライブラリを読み込もうとして落ちた
・SocketモジュールはCPANでアップデートしている
・つまりSocketモジュールをCPANで再インストールしてコンパイルしなおせばいい
・で、どうやってCPAN動かすの? ←いまここ

もちろんCPANの動作にはSocketが必要なわけで。詰んだ。・・・詰んだ?

10分ほど考えて最後の希望にかけて/home/renda/.cpanを覗いてみると・・・

なんとキャッシュあるじゃないですか。
さっくりmakeを走らせようとすると・・・
・makeは賢いのでファイルが変化していなければmakeしてくれない
・でもmakeしたい
・make cleanして作りなおそうとする
・MakefileをMakefile.PLから作ろうとし始める!
・もちろん落ちる。
Makefile消しちゃったよこの子。どーすんのと思ったらMakefile.oldで残しといてくれてた。

というわけで、全てのエラーが出てるモジュールに対して
・make clean
・mv Makefile.old Makefile
・make install
を実行。とりあえず安定して動作しているように見えるが果たして。

カテゴリー:GNU/Linux