Home > 仕事のこと > わー!わー!(CentOS 5 で perl を yum update したらもう大変)

わー!わー!(CentOS 5 で perl を yum update したらもう大変)

なんとなく yum update したら

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Updating:
 perl                    i386       4:5.8.8-15.el5_2.1  updates            12 M

Transaction Summary
=============================================================================

なんて言われて、「お、perl が落ちてくる」なんて思って軽い気持ちで yes した。

ちょうど新しいモジュールを作っていて perl のアップデート後に prove したらエラーがバンバン。しかも、Errno がどうのとか言われるので僕が作っているモジュールのエラーの気がしない。何となくいやな思いもしつつ、Catalyst の myapp_server.pl を svc -t /service/myapp_server/ で再起動すると案の定エラーが出て動かない。ログをのぞくと

Errno architecture (i386-linux-thread-multi-2.6.18-8.el5) does not match executable architecture (i386-linux-thread-multi-2.6.18-53.1.14.el5pae) at /usr/lib/perl5/site_perl/5.8.8/Errno.pm line 11.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Catalyst/Engine.pm line 7.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Catalyst/Engine.pm line 7.
Compilation failed in require at (eval 2) line 3.
      ...propagated at /usr/lib/perl5/5.8.8/base.pm line 85.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Catalyst/Engine/CGI.pm line 4.
Compilation failed in require at (eval 1) line 3.
      ...propagated at /usr/lib/perl5/5.8.8/base.pm line 85.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Catalyst/Engine/HTTP.pm line 4.
Compilation failed in require at /home/travail/public_html/SVNHOME/Shiori/script/shiori_server.pl line 7.
BEGIN failed--compilation aborted at /home/travail/public_html/SVNHOME/Shiori/script/shiori_server.pl line 8.

わー!わー!
もう大変!頭の中でちっさいさわが「わー!わー!」って叫び回ってました。
わー!わー!絶対 perl のバージョン上げたせいだ!わー!わー!
どうしよう!?OS 入れ直しとかになったらどうしよう!?
わー!わー!今のなし!今のなし!もう一回やらせて!

頭の中のちっさいさわを一人一人なだめて、落ち着かせたところで思い出しました。
「自家製の perl の RPM があるじゃなか」

FC5 FC6でPerlが遅い問題

http://femo.jp/kazeburo/br51s0s3qh

ここら変の話で CentOS 5 でも同じ状況だったのでパッチを当てた perl を自前で用意していたのだ。自分で rebuild した RPM が /usr/src/redhat/RPMS/i386 に残っていたのであとは

[root@mina]/usr/src/redhat/RPMS/i386# rpm -Uvh --oldpackage perl-5.8.8-10.2.i386.rpm

でダウングレード。
再度、svc -t /service/myapp_server/ してログをのぞくと

Weak references are not implemented in the version of perl at /usr/lib/perl5/site_perl/5.8.8/Catalyst.pm line 24
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Catalyst.pm line 24.
Compilation failed in require at /home/travail/public_html/SVNHOME/Shiori/script/../lib/Shiori.pm line 29.
BEGIN failed--compilation aborted at /home/travail/public_html/SVNHOME/Shiori/script/../lib/Shiori.pm line 29.
Compilation failed in require at /home/travail/public_html/SVNHOME/Shiori/script/shiori_server.pl line 58.

これはもう見慣れたエラーですよね。

[travail@cabane]/tmp% wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/Scalar-List-Utils-1.19.tar.gz
[travail@cabane]/tmp% tar xzvf Scalar-List-Utils-1.19.tar.gz
[travail@cabane]/tmp% cd Scalar-List-Utils-1.19
[travail@cabane]/tmp/Scalar-List-Utils-1.19% perl Makefile.PL
[travail@cabane]/tmp/Scalar-List-Utils-1.19% make
[travail@cabane]/tmp/Scalar-List-Utils-1.19% make test
[travail@cabane]/tmp/Scalar-List-Utils-1.19% sudo make install

再度、svc -t /service/myapp_server/ でアプリが動いていることを確認。
フロントとバックエンドの2台のサーバでこの作業を行って無事復旧。
今回は結構スリリングだった。

Comments:2

shot 2008年9月26日 17:27

ちなみにScalar::UtilsとErrnoの二つのモジュールを入れ直せば直るよ!

ちわ 2008年9月26日 17:43

> shot さん
あ、やっぱり、Errno を rebuild し直せばいいのか。
ありがとう、今夜やってみる。

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://hibinokoto.jp/mt/mt-tb.cgi/295
Listed below are links to weblogs that reference
わー!わー!(CentOS 5 で perl を yum update したらもう大変) from 日々のこと

Home > 仕事のこと > わー!わー!(CentOS 5 で perl を yum update したらもう大変)

Search
Feeds

Return to page top