IO object version 1.21 does not match bootstrap parameter 1.18

Discussion in 'Perl Misc' started by Eugene Borukhovich, Nov 23, 2004.

  1. Hello,

    I have Fedora Core 1 (Linux host2.macroscape.com
    2.4.22-1.2188.nptl_48.rhfc1.a)
    With perl:


    [root@host2 scripts]# perl -v

    This is perl, v5.8.3 built for i386-linux-thread-multi

    I have compiled form scratch some modules for ex Net::ping and for
    some reason can not use them. Any perl script I try to run gives me
    the following errors:

    IO object version 1.21 does not match bootstrap parameter 1.18 at
    /usr/lib/perl5/5.8.3/i386-linux-thread-multi/DynaLoader.pm line 249.
    Compilation failed in require at
    /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi/IO/Handle.pm
    line 260.
    BEGIN failed--compilation aborted at
    /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi/IO/Handle.pm
    line 260.
    Compilation failed in require at
    /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi/IO/Seekable.pm
    line 101.
    BEGIN failed--compilation aborted at
    /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi/IO/Seekable.pm
    line 101.
    Compilation failed in require at
    /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi/IO/File.pm line
    117.
    BEGIN failed--compilation aborted at
    /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi/IO/File.pm line
    117.
    Compilation failed in require at /usr/lib/perl5/5.8.3/FileHandle.pm
    line 9.
    Compilation failed in require at
    /usr/lib/perl5/5.8.3/i386-linux-thread-multi/Net/Ping.pm line 14.
    BEGIN failed--compilation aborted at
    /usr/lib/perl5/5.8.3/i386-linux-thread-multi/Net/Ping.pm line 14.
    Compilation failed in require at medco.pl line 2.
    BEGIN failed--compilation aborted at test.pl line 2.

    anybody have any thoghts? I actually thought to upgrade the
    DynaLoader, but can not find the source for that on CPAN (I guess it
    only comes with perl)

    Thanks, EB
     
    Eugene Borukhovich, Nov 23, 2004
    #1
    1. Advertising

  2. Eugene Borukhovich wrote:

    > I have compiled form scratch some modules for ex Net::ping and for
    > some reason can not use them.


    How did you compile them? Did you use the *full* standard procedure, up
    to and including the "make install"? Any special options or flags?

    > IO object version 1.21 does not match bootstrap parameter 1.18 at
    > /usr/lib/perl5/5.8.3/i386-linux-thread-multi/DynaLoader.pm line 249.


    The IO module has two separate pieces, a compiled C component that's in
    a .so file, and a Perl component that's in a .pm file. This error
    indicates that the version number reported by these two pieces does not
    match.

    This is generally the result of an incorrectly installed module, which
    is why I asked above how you installed it.

    > I actually thought to upgrade the DynaLoader


    That's absurd. The error message clearly states what module - IO - is
    misconfigured.

    sherm--

    --
    Cocoa programming in Perl: http://camelbones.sourceforge.net
    Hire me! My resume: http://www.dot-app.org
     
    Sherm Pendley, Nov 23, 2004
    #2
    1. Advertising

  3. Sherm Pendley <> wrote in message news:<>...
    > Eugene Borukhovich wrote:
    >
    > > I have compiled form scratch some modules for ex Net::ping and for
    > > some reason can not use them.

    >
    > How did you compile them? Did you use the *full* standard procedure, up
    > to and including the "make install"? Any special options or flags?


    Yep the full boat perl Makefile.PL;make;make install. I dont have
    problems with the default modules that came with Perl, only the newly
    compiled ones - maybe should start using CPAN shell - but I think I
    would get into he same boat anyhow

    > > IO object version 1.21 does not match bootstrap parameter 1.18 at
    > > /usr/lib/perl5/5.8.3/i386-linux-thread-multi/DynaLoader.pm line 249.

    >
    > The IO module has two separate pieces, a compiled C component that's in
    > a .so file, and a Perl component that's in a .pm file. This error
    > indicates that the version number reported by these two pieces does not
    > match.
    >
    > This is generally the result of an incorrectly installed module, which
    > is why I asked above how you installed it.
    >
    > > I actually thought to upgrade the DynaLoader

    >
    > That's absurd. The error message clearly states what module - IO - is
    > misconfigured.


    So why is DynaLoader referenced? I fond that those IO messages are
    misleading since at he end it actually lists the module that is
    conflicting...

    > sherm--
     
    Eugene Borukhovich, Nov 26, 2004
    #3
  4. Eugene Borukhovich wrote:

    > Yep the full boat perl Makefile.PL;make;make install. I dont have
    > problems with the default modules that came with Perl, only the newly
    > compiled ones - maybe should start using CPAN shell


    The CPAN shell does the same thing.

    >>>IO object version 1.21 does not match bootstrap parameter 1.18 at
    >>>/usr/lib/perl5/5.8.3/i386-linux-thread-multi/DynaLoader.pm line 249.

    >>

    > So why is DynaLoader referenced?


    DynaLoader is *reporting* the problem, not *causing* it.

    Besides - the reported version numbers don't make sense for DynaLoader.
    For 5.8.1, it's at 1.04, for 5.8.4 it's 1.05.

    For 5.8.1, IO is at 1.20, with 5.8.4, IO is 1.21. That's more in line
    with the version number's you're seeing above. (An interesting note is
    that the older version you're seeing - 5.18 - predates the Perl version
    you're using. That fact could be helpful in diagnosing the cause.)

    So you have the latest IO.pm, which is reporting version 1.21, but when
    DynaLoader tries to load IO.so, that reports version 1.18. This is a
    fatal problem, so DynaLoader complains about it and dies.

    Perl has separate directories for version-specific modules specifically
    to prevent this sort of problem. The fact that it's happening usually
    indicates either a module install gone very wrong, or a very badly
    misconfigured perl.

    The first problem listed is the one you need to diagnose and fix first -
    the others are a result of the first. When IO fails to load, the module
    that tried to use it (IO::Handle) fails. Then the module that tried to
    use IO::Handle fails. And so on, until the main script fails at the end.

    So the key to solving the problem is figuring out *why* your Perl is
    loading the latest IO.pm, but an older IO.so.

    That's why I asked about how it was installed - I've often seen folks
    skip the final "make install" step and manually copy .pm files into
    place. Naturally that results in the newer .pm trying to load the older .so.

    Another common problem is issuing 'make install' when 'make' failed with
    compilation errors. Since the .so failed to build, the only thing that
    gets installed in that case is the newer .pm; the older .so is left in
    place.

    The *very* old IO.so that's being reported is interesting - it indicates
    that libraries from a much older Perl are being found. That can happen
    in any number of ways.

    sherm--

    --
    Cocoa programming in Perl: http://camelbones.sourceforge.net
    Hire me! My resume: http://www.dot-app.org
     
    Sherm Pendley, Nov 26, 2004
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. V Green
    Replies:
    0
    Views:
    921
    V Green
    Feb 5, 2008
  2. PA Bear [MS MVP]
    Replies:
    0
    Views:
    1,033
    PA Bear [MS MVP]
    Feb 5, 2008
  3. Graham Wood
    Replies:
    2
    Views:
    123
    Graham Wood
    Jun 26, 2004
  4. Replies:
    0
    Views:
    227
  5. ccc31807
    Replies:
    2
    Views:
    571
    C.DeRykus
    Dec 6, 2011
Loading...

Share This Page