Не удается найти DBI.pm, даже если он находится в пути

Я пытаюсь установить плагин munin-mysql, но сталкиваюсь со странной ошибкой. Мунин жалуется, что не может найти DBI.pm в @INC:

[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 ответ

Решение

munin-run переключает пользователей. Пользователь по умолчанию nobody, Этот пользователь, вероятно, не имеет разрешения на чтение файла.

Сценарий должен запускаться с достаточными привилегиями, обычно от имени пользователя root, поскольку он переключается либо на пользователя по умолчанию munin-node (часто "никто"), либо на любого пользователя, специально настроенного для запуска данного плагина.

Проверить с munin-run --debug какой пользователь работает и проверьте, что пользователь может читать /usr/local/lib64/perl5/DBI.pm,

Другие вопросы по тегам