AWallBuilder has asked for the wisdom of the Perl Monks concerning the following question:

Hi all,

I am trying to install some perl modules as a user without root priveliges. I created my own perl directory and associated .cpan/CPAN directories etc. I used CPAN to install DBI and DBD::SQLite. However, when I run my script that requires DBI, I get the following error.

Can't load '/g/typas/Alison/bin/myperl/lib/x86_64-linux-thread-multi/a +uto/DBI/DBI.so' for module DBI: /g/typas/Alison/bin/myperl/lib/x86_64 +-linux-thread-multi/auto/DBI/DBI.so: undefined symbol: PL_charclass a +t /usr/lib64/perl5/DynaLoader.pm line 200. at /g/typas/Alison/bin/myperl/lib/x86_64-linux-thread-multi/DBI.pm li +ne 278 BEGIN failed--compilation aborted at /g/typas/Alison/bin/myperl/lib/x8 +6_64-linux-thread-multi/DBI.pm line 278. Compilation failed in require at /g/typas/Alison/bin/orthoMCL_sqlite/b +in/orthomclInstallSchema line 3. BEGIN failed--compilation aborted at /g/typas/Alison/bin/orthoMCL_sqli +te/bin/orthomclInstallSchema line 3.

there are a few different versions of perl installed on my system, maybe there is some mismatch?

any help apprecieated

thanks

Replies are listed 'Best First'.
Re: problems installing modules - ex. DBI
by taint (Chaplain) on Dec 05, 2013 at 00:26 UTC

    Personally, I'm at a bit of a loss, without a little more information.

    Couple of things come to mind;
    In detail. What procedure did you use to build/install this module?
    Did you tell Perl where you intended to install it

    make install PREFIX=/path/to/my/personal/directory
    ?
    When you indicate you have other versions installed. Are they also installed within your home folder?

    Any more specifics, that you don't feel are typical of a normal/usual install would help.

    Best wishes.

    --Chris

    #!/usr/bin/perl -Tw
    use Perl::Always or die;
    my $perl_version = (5.12.5);
    print $perl_version;
Re: problems installing modules - ex. DBI
by marto (Cardinal) on Dec 05, 2013 at 11:07 UTC

    In order to answer fully we'd need more information. The perl setup, an example script which reproduces this error. If you are running a system and want multiple users to have access to instal modules why not build a single version of perl (say under /opt/) and set permissions to allow them to install modules for this version? If you only want to provide access to the finished program to users consider packaging the script.