最近yumのパッケージなどあまり更新してなかったので、久々にやるかと思って、
GUIでアップデートを行なったらいきなりperlスクリプトが500Internal Server Error。
うざーー!
最初にCGI::Carp qw(fatalsToBrowser)を呼んでいるので、このエラーの場合は
たいていヘッダー出力が間違っていることがほとんど。
しかしどこもおかしくない。
/var/log/httpd/error_log を見ても、お得意の
「Premature end of script headers」
しかしよーく見ると
「Can't locate object method "splitpath" via package "File::Spec" at /usr/lib/perl5/5.10.0/CGI/Carp.pm line 361, line 64.」
なので、試しに、同じようにCarp.pmを使用してるMTのスクリプトにアクセスしてみたら、同様のエラーコメント。
今回のyumアップデート直後のエラーだけに
/var/log/yum.log を見てみる。
Apr 25 16:01:29 Updated: httpd-2.2.11-2.fc10.i386
Apr 25 16:01:29 Updated: 4:perl-libs-5.10.0-68.fc10.i386
・
・
Apr 25 16:02:37 Updated: cpan2rpm-2.028-6.fc10.noarch
うーん、なんかこの辺が怪しい感じ。
アパッチのアップデートも入ってるけど、perlのモジュールを結構全面的に
書き換えてる感じだから、とりあえずエラーが出てるおおもとの
File::Specモジュールをとりあえずインストールしなおすかってことで・・
たしかこれはCpanのRPMパッケージだったはずだから、とりあえず、
----------------------------------------------------
# rpm -e perl-File-Spec
# rpm -q perl-File-Spec
パッケージ perl-File-Spec はインストールされていません。
----------------------------------------------------
と、ここで何となくスクリプトを実行してみたら、
あれ・・・動いた・・・。
MTにもちゃんとログインできる・・・
/usr/lib/perl5/ の中を確認すると、何か知らんけどFile::Specモジュールが
入ってる・・・
ということは、今回のアップデートでperl5.10.0の標準モジュールになった
ってこと?
いやいやそんなはずはない。Carp.pmなんてずっと昔から使ってるんだから。
rpmを削除してスクリプトがちゃんと動くってことは、今まで標準
モジュールよりRPMパッケージの方を優先して読み込んでたってこと?
てゆうか、最初からFile::Spec入ってるのになんで俺RPMでインストールしちゃって
るんだろう?
とにかく今回のモジュールアップデートでどこかダブったんだか改行コードがおかしく
なったんだかようわからんが、直ってよかった。
2日ハマったのでメモ。
GUIでアップデートを行なったらいきなりperlスクリプトが500Internal Server Error。
うざーー!
最初にCGI::Carp qw(fatalsToBrowser)を呼んでいるので、このエラーの場合は
たいていヘッダー出力が間違っていることがほとんど。
しかしどこもおかしくない。
/var/log/httpd/error_log を見ても、お得意の
「Premature end of script headers」
しかしよーく見ると
「Can't locate object method "splitpath" via package "File::Spec" at /usr/lib/perl5/5.10.0/CGI/Carp.pm line 361, line 64.」
なので、試しに、同じようにCarp.pmを使用してるMTのスクリプトにアクセスしてみたら、同様のエラーコメント。
今回のyumアップデート直後のエラーだけに
/var/log/yum.log を見てみる。
Apr 25 16:01:29 Updated: httpd-2.2.11-2.fc10.i386
Apr 25 16:01:29 Updated: 4:perl-libs-5.10.0-68.fc10.i386
・
・
Apr 25 16:02:37 Updated: cpan2rpm-2.028-6.fc10.noarch
うーん、なんかこの辺が怪しい感じ。
アパッチのアップデートも入ってるけど、perlのモジュールを結構全面的に
書き換えてる感じだから、とりあえずエラーが出てるおおもとの
File::Specモジュールをとりあえずインストールしなおすかってことで・・
たしかこれはCpanのRPMパッケージだったはずだから、とりあえず、
----------------------------------------------------
# rpm -e perl-File-Spec
# rpm -q perl-File-Spec
パッケージ perl-File-Spec はインストールされていません。
----------------------------------------------------
と、ここで何となくスクリプトを実行してみたら、
あれ・・・動いた・・・。
MTにもちゃんとログインできる・・・
/usr/lib/perl5/ の中を確認すると、何か知らんけどFile::Specモジュールが
入ってる・・・
ということは、今回のアップデートでperl5.10.0の標準モジュールになった
ってこと?
いやいやそんなはずはない。Carp.pmなんてずっと昔から使ってるんだから。
rpmを削除してスクリプトがちゃんと動くってことは、今まで標準
モジュールよりRPMパッケージの方を優先して読み込んでたってこと?
てゆうか、最初からFile::Spec入ってるのになんで俺RPMでインストールしちゃって
るんだろう?
とにかく今回のモジュールアップデートでどこかダブったんだか改行コードがおかしく
なったんだかようわからんが、直ってよかった。
2日ハマったのでメモ。
