PR

Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Scalar/Util.pm line 30

管理しているサーバで yum update をした。特に問題がなさそうなのでアップデートした。
(念のためスレーブ系のをOFFにしておいた=元に戻せるように)

翌日、バックアップのためにFTPに接続したところ、バックアップファイルがなかった。

スポンサードリンク

SSHで調べてみると次のようになっていた。

※データベースバックアップシステムは自分で作ったスクリプト

[root@localhost ~]# perl /var/www/cron/db_backup.cgi
is only avaliable with the XS version at /usr/lib/perl5/site_perl/5.8.8/Compress/Zlib.pm line 9
BEGIN failed–compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Compress/Zlib.pm line 9.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Archive/Zip.pm line 11.
BEGIN failed–compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Archive/Zip.pm line 11.
Compilation failed in require at /var/www/cron/db_backup.cgi line 62.
BEGIN failed–compilation aborted at /var/www/cron/db_backup.cgi line 62.

Compress::Zlibがよろしくないということなので、CPANで何とか試みるがエラーが出る。

Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Scalar/Util.pm line 30.

次のものでも同じようにエラーが出る。

– install Compress::Zlib
– install Bundle::LWP
– install Image::Magic

ネットで調べたところ、2007年にもyumで同様のエラーが出た報告があったので参考にした。

wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/Scalar-List-Utils-1.19.tar.gz
tar zxvf Scalar-List-Utils-1.19.tar.gz
cd Scalar-List-Utils-1.19
perl Makefile.PL
make test install

2008/08/21追記

  • install Scalar::Util
  • force install Scalar::Util

上記のどちらかのコマンドでも対応できそうだ

CPANをリロードして問題のCompress::Zlibなどをアップデートしたところ問題は解決したようだ。

自作のスクリプトもエラーを出さなくなった。

[root@localhost ~]# perl /var/www/cron/db_backup.cgi
=== [ Start DataBase Backup Prosess ] ===
=> Try :/var/www/backup/2008-06-30.sql
=> Try : Compress Prosess
-> Source : /var/www/backup/2008-06-30.sql
-> Output : /var/www/backup/2008-06-30.sql.zip
-> Complete Status : [ O K ]
-> File Size Is : 49,829,140 Byte -> 7,411,975 Byte
=== [ End of Backup Prosess ] ===

参考文献

コメント