http://qs321.pair.com?node_id=469318

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

Hello Everyone

Lately I've installed Perl 5.8.7 on the Debian Woody box.
The installation went fine, but when I run the old scripts , the script
throws out the following error
install_driver(mysql) failed: Can't load '/usr/lib/perl5/auto/DBD/mysq +l/mysql.so' for module DBD::mysql: /usr/lib/perl5/auto/DBD/mysql/mysq +l.so: undefined symbol: PL_perl_destruct_level at /usr/local/lib/perl +5/5.8.7/i686-linux-thread-multi/DynaLoader.pm line 230. at (eval 5) line 3
I've downloaded the DBD::mysql module and tried to compile it, when the Makefile.PL
is executed, I see the following:
Multiple copies of Driver.xst found in: /usr/local/lib/perl5/site_perl +/5.8.7/i686-linux-thread-multi/auto/DBI/ /usr/local/lib/perl/5.6.1/au +to/DBI/ /usr/lib/perl5/auto/DBI/ at Makefile.PL line 395 Using DBI 1.48 (for perl 5.008007 on i686-linux-thread-multi) installe +d in /usr/local/lib/perl5/site_perl/5.8.7/i686-linux-thread-multi/aut +o/DBI/
When I type 'make', make exits with 'Error 1'.
Now, I want to remove the existing DBD::Mysql module and reinstall it. Can anybody let me know how to uninstall the module with all its dependencies.

Any suggestions are welcome

Replies are listed 'Best First'.
Re: Uninstalling DBD::mysql and dependent modules
by Corion (Patriarch) on Jun 23, 2005 at 09:08 UTC

    The problem is that you now have two programs that can be invoked under the name perl on your system, and the two are largely incompatible when it comes to binary modules like DBI. I fear you might even have broken your Debian installation by installing the new Perl 5.8.7, as Debian apt-get is written in Perl and relies on modules that Debian does not make available via CPAN for other versions of Perl. I once ruined a Debian system by replacing the system Perl with a self-compiled version which didn't follow the same setup as Debian.

    If you still can, try to untangle the two versions of Perl and make sure that /usr/bin/perl points to the old Debian system Perl. If that doesn't work, many of Debians utilities will be broken for you, mainly apt-get.

    Personally, I install all my "private" versions of Perl under /opt/perl/ now, with a PREFIX=/opt/perl (in the Makefile) and with the explicit version number in the path, so all my Perl versions live in completely distinct directories.

Re: Uninstalling DBD::mysql and dependent modules
by anonymized user 468275 (Curate) on Jun 23, 2005 at 09:38 UTC
    But, if the make failed then it didn't do any damage (yet). I agree with the other responder that apt is good. But when it comes to concurrent versioning issues I would also offer synaptic as a suggestion (a graphical version-sensitive interface to apt that provides a gui-interface to what versions you are removing or installing) and/or cvs if your distro-supplier supports it.

    -S