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

I do not have DBI and cpan refuses to work without DBI.

I think I got me into this problem when I told the cpan program that it could use SQLite during the setup after upgrading to perl 5.12. I tried to install DBI with my old perl and include the path to that one but the path was not included in @INC like I thought it would and I am out of ideas.

$ sudo perl -I/usr/local/lib/perl5/site_perl/5.10.1/i686-linux/ -MCPAN + -e shell cpan shell -- CPAN exploration and modules installation (v1.9456) Enter 'h' for help. Can't ioctl TIOCGETP: Invalid argument + Consider installing Term::ReadKey from CPAN site nearby at http://www.perl.com/CPAN Or use perl -MCPAN -e shell to reach CPAN. Falling back to 'stty'. If you do not want to see this warning, set PERL_READLINE_NOWA +RN in your environment. cpan[1]> i DBI Creating database file ... Can't locate DBI.pm in @INC (@INC contains: /usr/local/lib/perl5/site_ +perl/5.12.0/i686-linux /usr/local/lib/perl5/site_perl/5.12.0 /usr/loc +al/lib/perl5/5.12.0/i686-linux /usr/local/lib/perl5/5.12.0 /usr/local +/lib/perl5/site_perl/5.10.1 /usr/local/lib/perl5/site_perl/5.10.0 /us +r/local/lib/perl5/site_perl /home/stefan) at /usr/local/lib/perl5/sit +e_perl/5.10.0/CPAN/SQLite/DBI.pm line 5.

How do I fix this?

Replies are listed 'Best First'.
Re: cpan DBI # Catch 22
by Corion (Patriarch) on Apr 14, 2010 at 12:43 UTC

    Looking at CPAN::SQLite, it seems that the following should tell cpan not to try and load SQLite:

    perl -MCPAN -e shell cpan> o conf use_sqlite 0 cpan> o conf commit

    After DBI and DBD::SQLite have been installed (again), you can try to re-enable SQLite support.

    Also, you shouldn't try to mix installed modules between old and new versions of Perl in my opinion, because in the long run, some modules will fail because their XS prerequisites have only been installed for the old version of Perl.

      It worked. Thanks!