- 2008年9月26日 00:10
- 仕事のこと
なんとなく 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 があるじゃなか」
ここら変の話で 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台のサーバでこの作業を行って無事復旧。
今回は結構スリリングだった。
- Newer: CentOS 5 の RPM の Perl は未だに 例のパッチが当たったまま
- Older: 9月の彼と僕のこと
Comments:2
- shot 2008年9月26日 17:27
ちなみにScalar::UtilsとErrnoの二つのモジュールを入れ直せば直るよ!
- ちわ 2008年9月26日 17:43
> shot さん
あ、やっぱり、Errno を rebuild し直せばいいのか。
ありがとう、今夜やってみる。
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 日々のこと