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

Я пытаюсь установить плагин munin-mysql, но не могу m столкнулся со странной ошибкой. Munin жалуется, что не может найти 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

Связанные вопросы:


person dr_    schedule 18.04.2016    source источник
comment
Проверьте права доступа к файлу DBI.pm.   -  person AbhiNickz    schedule 18.04.2016
comment
Уже сделано, права доступа к файлам и родительским каталогам 755.   -  person dr_    schedule 18.04.2016
comment
Каков результат команды perl -MDBI -e1?   -  person Borodin    schedule 18.04.2016
comment
Команда ничего не выводит и завершается с нулевым статусом.   -  person dr_    schedule 18.04.2016
comment
Правильный экземпляр для использования — /usr/local/lib64/perl5/DBI.pm. Остальные в основном рабочие файлы из cpan, cpanm и munin. Другой в /usr/local/lib64/perl5 на самом деле является модулем Bundle::DBI   -  person Borodin    schedule 18.04.2016


Ответы (1)


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

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

Проверьте с помощью munin-run --debug, от имени какого пользователя он работает, и убедитесь, что пользователь может читать /usr/local/lib64/perl5/DBI.pm.

person Schwern    schedule 18.04.2016