munin-node-configure errors because of lack of DBI.pm
Hi, Is there any additional info for this report? %% sudo emerge -pv DBI munin These are the packages that would be merged, in order: Calculating dependencies... done! [binary N ] dev-perl/Net-Daemon-0.43 [binary N ] perl-core/File-Spec-3.30 [binary N ] perl-core/Sys-Syslog-0.27 [binary N ] dev-perl/PlRPC-0.2020-r1 [binary N ] virtual/perl-File-Spec-3.30 [binary N ] virtual/perl-Sys-Syslog-0.27 [ebuild R ] net-analyzer/munin-1.4.3 USE="ssl -doc -irc -minimal -mysql -postgres" 0 kB [binary N ] dev-perl/DBI-1.609 %% munin-node-configure <snip; no error messages re DBI> %% echo $? 0
# munin-node-configure <snip> # There were some errors: # Got from ifx_concurrent_sessions_: sh: /usr/bin/ps: No such file or directory # Got from ifx_concurrent_sessions_: Use of uninitialized value in chdir at /usr/lib64/perl5/5.8.8/File/Find.pm line 751. # Got from ifx_concurrent_sessions_: Use of chdir('') or chdir(undef) as chdir() is deprecated at /usr/lib64/perl5/5.8.8/File/Find.pm line 751. # Got from ifx_concurrent_sessions_: Insecure dependency in chdir while running with -T switch at /usr/lib64/perl5/5.8.8/File/Find.pm line 751. # Got from http_loadtime: which: no time in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.4) # Got from postgres_space_: Can't locate DBI.pm in @INC (@INC contains: /etc/perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux /usr/lib64/perl5/vendor_perl/5.8.8 /usr/lib64/perl5/vendor_perl /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux /usr/lib64/perl5/site_perl/5.8.8 /usr/lib64/perl5/site_perl /usr/lib64/perl5/5.8.8/x86_64-linux /usr/lib64/perl5/5.8.8 /usr/local/lib/site_perl .) at /usr/libexec/munin/plugins/postgres_space_ line 48. # Got from postgres_space_: BEGIN failed--compilation aborted at /usr/libexec/munin/plugins/postgres_space_ line 48. # Got from sendmail_mailstats: which: no mailstats in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.4) # Got from sendmail_mailtraffic: which: no mailstats in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.4) # Got from postgres_commits_: Can't locate DBI.pm in @INC (@INC contains: /etc/perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux /usr/lib64/perl5/vendor_perl/5.8.8 /usr/lib64/perl5/vendor_perl /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux /usr/lib64/perl5/site_perl/5.8.8 /usr/lib64/perl5/site_perl /usr/lib64/perl5/5.8.8/x86_64-linux /usr/lib64/perl5/5.8.8 /usr/local/lib/site_perl .) at /usr/libexec/munin/plugins/postgres_commits_ line 102. # Got from postgres_commits_: BEGIN failed--compilation aborted at /usr/libexec/munin/plugins/postgres_commits_ line 102. # ERROR: empty suggest from psu_ # Got from vlan_: /usr/libexec/munin/plugins/vlan_: line 26: [: -r: binary operator expected # Got from postgres_queries_: Can't locate DBI.pm in @INC (@INC contains: /etc/perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux /usr/lib64/perl5/vendor_perl/5.8.8 /usr/lib64/perl5/vendor_perl /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux /usr/lib64/perl5/site_perl/5.8.8 /usr/lib64/perl5/site_perl /usr/lib64/perl5/5.8.8/x86_64-linux /usr/lib64/perl5/5.8.8 /usr/local/lib/site_perl .) at /usr/libexec/munin/plugins/postgres_queries_ line 83. # Got from postgres_queries_: BEGIN failed--compilation aborted at /usr/libexec/munin/plugins/postgres_queries_ line 83. # Got from sensors_: Can't exec "sensors": No such file or directory at /usr/libexec/munin/plugins/sensors_ line 64. # Got from postgres_block_read_: Can't locate DBI.pm in @INC (@INC contains: /etc/perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux /usr/lib64/perl5/vendor_perl/5.8.8 /usr/lib64/perl5/vendor_perl /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux /usr/lib64/perl5/site_perl/5.8.8 /usr/lib64/perl5/site_perl /usr/lib64/perl5/5.8.8/x86_64-linux /usr/lib64/perl5/5.8.8 /usr/local/lib/site_perl .) at /usr/libexec/munin/plugins/postgres_block_read_ line 80. # Got from postgres_block_read_: BEGIN failed--compilation aborted at /usr/libexec/munin/plugins/postgres_block_read_ line 80. # echo $? 1 # emerge -pv DBI munin These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] dev-perl/Net-Daemon-0.43 28 kB [ebuild N ] perl-core/Sys-Syslog-0.27 75 kB [ebuild N ] dev-perl/PlRPC-0.2020-r1 18 kB [ebuild N ] perl-core/File-Spec-3.30 136 kB [ebuild N ] virtual/perl-Sys-Syslog-0.27 0 kB [ebuild R ] net-analyzer/munin-1.3.4-r2 USE="minimal ssl -doc -irc -mysql -postgres" 0 kB [ebuild N ] virtual/perl-File-Spec-3.30 0 kB [ebuild N ] dev-perl/DBI-1.609 499 kB
Hi, I looked at my hosts some more and don't know what the problem is for you. Since no one else has expressed this concern, I am not too motivated to look anymore. Removing myself from CC.
Postgres monitoring scripts need dev-perl/DBI installed, but it is no dependency of the postgres USE flag.
On my system, munin-1.3.4-r2[postgres] depends on dev-perl/DBD-Pg, which depends on dev-perl/DBI. This resolves the dependency. Could you check your USE flags, OP?
Some more info: a node without postgres USE flag, does install postgres scripts into /usr/libexec/munin/plugins/, which *do* whine about missing DBI when running munin-node-configure --suggest: # There were some errors: # Got from postgres_queries_: Can't locate DBI.pm in @INC (@INC contains: /etc/perl /usr/lib/perl5/vendor_perl/5.8.8/i686-linux /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl/5.8.8/i686-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/5.8.8/i686-linux /usr/lib/perl5/5.8.8 /usr/local/lib/site_perl .) at /usr/libexec/munin/plugins/postgres_queries_ line 83. # Got from postgres_queries_: BEGIN failed--compilation aborted at /usr/libexec/munin/plugins/postgres_queries_ line 83. # Got from sendmail_mailtraffic: which: no mailstats in (/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin) # Got from postgres_block_read_: Can't locate DBI.pm in @INC (@INC contains: /etc/perl /usr/lib/perl5/vendor_perl/5.8.8/i686-linux /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl/5.8.8/i686-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/5.8.8/i686-linux /usr/lib/perl5/5.8.8 /usr/local/lib/site_perl .) at /usr/libexec/munin/plugins/postgres_block_read_ line 80. # Got from postgres_block_read_: BEGIN failed--compilation aborted at /usr/libexec/munin/plugins/postgres_block_read_ line 80. # Got from hddtemp_smartctl: which: no smartctl in (/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin) # Got from postgres_space_: Can't locate DBI.pm in @INC (@INC contains: /etc/perl /usr/lib/perl5/vendor_perl/5.8.8/i686-linux /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl/5.8.8/i686-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/5.8.8/i686-linux /usr/lib/perl5/5.8.8 /usr/local/lib/site_perl .) at /usr/libexec/munin/plugins/postgres_space_ line 48. # Got from postgres_space_: BEGIN failed--compilation aborted at /usr/libexec/munin/plugins/postgres_space_ line 48. # Got from sendmail_mailstats: which: no mailstats in (/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin) # Got from http_loadtime: which: no time in (/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin) # Got from postgres_commits_: Can't locate DBI.pm in @INC (@INC contains: /etc/perl /usr/lib/perl5/vendor_perl/5.8.8/i686-linux /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl/5.8.8/i686-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/5.8.8/i686-linux /usr/lib/perl5/5.8.8 /usr/local/lib/site_perl .) at /usr/libexec/munin/plugins/postgres_commits_ line 102. # Got from postgres_commits_: BEGIN failed--compilation aborted at /usr/libexec/munin/plugins/postgres_commits_ line 102. Mysql plugins are also installed (despite the missing USE flag), but they fail more nicely and so they don't emit errors. Maybe the ebuild could remove plugins that depend on a specific USE flag? It would be better to fix the plugins (upstream) though.
I've just added dev-perl/DBI to the deps for now. It's needed for MySQL, Postgres, Informix, Sybase and some plugins iirc.
And I've added a portage overlay. I don't have any databases installed; why should I need DBI?