[smokeping-users] Can't find lib.pm in @INC

G.W. Haywood ged at jubileegroup.co.uk
Sun Nov 23 11:28:09 CET 2008


Hi Eric,

On Sun, 23 Nov 2008, Eric Chatham wrote:

> I just got through re-installing the entire OS in attempt to getting
> smokeping to work.

That was a bit excessive!

> I'm determined to getting this thing working but I'm getting all
> these tiresome snags.

Tiresome snags are (only) partly because you don't understand what's
needed nor what's going on.  That's to be expected when you're new to
a fiendishly complex piece of technology like a Linux system.  But do
persevere - as you've declared you intend to - because it will start
to make sense after a while.  Unfortunately it would be rash of me
to promise that it will be a short while.  You will need patience.
But you don't need to keep reinstalling the OS, this isn't Windows.

> This is the latest error I'm getting when I try to execute the
> smokeping.cgi.  I'm still stuck at the same place I was last time
> where I was unable to view the smokeping page.
>
> <CODE>
>
> Can't locate lib.pm in @INC (@INC contains: \
> /usr/lib/perl5/5.00503/i386-linux           \
> /usr/lib/perl5/5.00503                      \
> /usr/lib/perl5/site_perl/5.005/i386-linux   \
> /usr/lib/perl5/site_perl/5.005              \
> .                                           \
> )                                           \
> at ./smokeping.cgi line 7.                  \
> BEGIN failed--compilation aborted at        \
> ./smokeping.cgi line 7.
>
> </CODE>

Is this version of Perl what CentOS normally supplies?!
Take a look at

http://www.cpan.org/src/README.html

for a history of Perl releases.

> lib.pm is not in any of those directories @INC.  It's here:
> /usr/lib/perl5/5.8.8/i386-linux-thread-multi/lib.pm.

The reason I said "...(only) partly because..." is that I'm a little
perplexed by your @INC paths.  In my extraordinary rendition of that
part of your message above, I've put the paths one per line (notice
that the path "." is on a line on its own for example) and the thing
that strikes me is that your Perl is getting on for ten years out of
date.  Perl 5.005 is _very_ old and I'd think really should be using
5.8.8 at least.  You'd _probably_ be safe with 5.10.0 by now although
I don't know what your distro would make of it.  If you're happy to
reinstall and entire OS just for a few Perl scripts then you might
want to consider a different one - it might be easier for you than
installing a new Perl.  Does CentOS not supply a more up-to-date Perl
in a package?  Unfortunately Smokeping may be a little sensitive to
Perl and the versions of some Perl tools and scripts.  They have an
annoying tendency to change their API with no warning, and with no
backward compatibilty.

> [snip] What else can I try?

First I think you need a system which has a reasonably modern Perl.
I'd recommend that you do nothing with anything Perlish until your
@INC contains something like this:

<CODE>
[ged at mail3 ged]$ perl -V
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
  Platform:
       [...snip...]
  Compiler:
       [...snip...]
  Linker and Libraries:
       [...snip...]
  Dynamic Linking:
       [...snip...]

Characteristics of this binary (from libperl):
       [...snip...]
  Locally applied patches:
        REGEXP0 - fix for UTF-8 recoding in regexps - CVE-2007-5116
       [...snip...]
       [...snip...]
  @INC:
    /usr/local/lib/perl5/5.8.8/i686-linux
    /usr/local/lib/perl5/5.8.8
    /usr/local/lib/perl5/site_perl/5.8.8/i686-linux
    /usr/local/lib/perl5/site_perl/5.8.8
    /usr/local/lib/perl5/site_perl/5.8.3/i686-linux
    /usr/local/lib/perl5/site_perl/5.8.3
    /usr/local/lib/perl5/site_perl
    .
</CODE>

Note that there are a couple of paths to an OLD perl in my @INC, but
my OLD perl is way newer than 5.005_03 which I finally stopped using
(after hanging on to it for quite some time) about five years ago!
Note also that rather than upgrade Perl in its entirety for security
issues I chose to patch my existing installation.  I don't necessarily
recommend that you try to do that at this stage, it's probably simpler
for you to rely on the distro security update mechanisms.

Note also that this particular Perl is in

/usr/local/lib

not in

/usr/lib

which is because I installed it (in 2006) to replace the original Perl
on this system (5.8.0, vintage 2002) which is still there in /usr/lib
in case I get desperate.  That's pretty unlikely now, of course, I'm
just showing you that you can have more than one Perl installed if you
need to for some reason.  Unfortunately you'll probably need to gain a
bit more familiarity with your system before you'll be comfortable with
running different versions of things like Perl and libraries.

> And, what other details do you need to help?

Output of 'perl -V'?

Note that the 'V' is upper case 'V' not lower case 'v'.

> CONFIDENTIAL. This e-mail and any attached files are confidential
> and should be destroyed and/or returned if you are not the intended
> and proper recipient.

If your legal people haven't got anything better to do than spam us
all with this tripe, please get The Management to fire them.

--

73,
Ged.



More information about the smokeping-users mailing list