即使它在路径中也找不到DBI.pm.

时间:2016-04-18 14:28:28

标签: mysql perl dbi munin

我正在尝试安装munin-mysql plugin,但我遇到了一个奇怪的错误。 Munin抱怨它在@INC中找不到DBI.pm

[root@mybox perl5]# munin-run mysql
Can't locate DBI.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /etc/munin/plugins/mysql line 127.
BEGIN failed--compilation aborted at /etc/munin/plugins/mysql line 127.

但是,确实在路径中,正好在/usr/local/lib64/perl5。它是通过命令cpanm DBI安装的。 实际上,有几个DBI.pm个文件;我怎么知道要使用哪一个?

[root@mybox perl5]# find / -name DBI.pm
/root/.cpan/build/DBI-1.634-Aazmvi/blib/lib/Bundle/DBI.pm
/root/.cpan/build/DBI-1.634-Aazmvi/blib/lib/DBI.pm
/root/.cpan/build/DBI-1.634-Aazmvi/lib/Bundle/DBI.pm
/root/.cpan/build/DBI-1.634-Aazmvi/DBI.pm
/root/.cpanm/work/1460983027.32244/DBI-1.634/blib/lib/Bundle/DBI.pm
/root/.cpanm/work/1460983027.32244/DBI-1.634/blib/lib/DBI.pm
/root/.cpanm/work/1460983027.32244/DBI-1.634/lib/Bundle/DBI.pm
/root/.cpanm/work/1460983027.32244/DBI-1.634/DBI.pm
/root/munin-mysql-master/t/mock/DBI.pm
/usr/local/lib64/perl5/Bundle/DBI.pm
/usr/local/lib64/perl5/DBI.pm

相关问题:

1 个答案:

答案 0 :(得分:3)

munin-run switches users。默认用户为nobody。该用户可能无权读取该文件。

  

脚本必须以足够的权限运行,通常以root身份运行,因为它切换到munin-node的默认用户(通常" nobody")或任何专门配置为运行给定的用户插入。

选中munin-run --debug用户正在运行的用户,并检查该用户是否可以阅读/usr/local/lib64/perl5/DBI.pm