[munin] munin 2.0.6で、apt, apt_all 使用時に”Use of uninitialized value $ENV{“MUNIN_PLUGSTATE”} in concatenation” がでる場合の対処法 [debian]

また munin の話です。今回、Debian Testing で提供されているらしい munin 2.0.6 を使っていますが、この plugin で、apt, apt_all を cron で実行したときにエラーが出ます。

その対処法について見つけたので、残しておきます。

munin-node において、apt、apl_all の plugin を enable にしておくと、/etc/cron.d/munin-node 内で apt、apt_all のスクリプトが実行されます。
が、困ったことに munin 2.0.6 では次のようなエラーが発生することでしょう。

Use of uninitialized value $ENV{“MUNIN_PLUGSTATE”} in concatenation (.) or string at ./apt line 78.

そのまま検索すると、Debian の BUG report に引っかかるので、そのまま対応すれば宜しいです。
具体的には、/usr/share/munin/plugins/apti を直接修正します。

修正前/usr/share/munin/plugins/apt

1
2
3
4
5
use strict;
$ENV{'LANG'}="C";
$ENV{'LC_ALL'}="C";
 
my $statefile = "$ENV{MUNIN_PLUGSTATE}/plugin-apt.state";

修正後/usr/share/munin/plugins/apt

1
2
3
4
5
6
use strict;
use Munin::Common::Defaults;
$ENV{'LANG'}="C";
$ENV{'LC_ALL'}="C";
 
my $statefile = "$Munin::Common::Defaults::MUNIN_PLUGSTATE/plugin-apt.state";

以上ですヽ(´ー`)ノ

  1. もしくは、apt_all []