Bug#533707: CPANP not acting consistently with CPAN

Evan Carroll me at evancarroll.com
Fri Jun 19 21:34:53 UTC 2009


Severity: serious
Tags: confirmed
Package: perl

In an attempt to solve other bugs with Debian playing well with CPAN,
I've come across a new one. It appears as if CPANPLUS is not
configured to behave like CPAN.pm.

In /etc/perl/CPAN/Config.pm you'll find
'makepl_arg' => q[INSTALLDIRS=site],
(might also want mbuildpl_arg)

There is nothing like this for CPANP in the Debian configuration.
Assuming that you're using a version that can be updated, you can test
this and see the problems with it by updating Archive::Extract.

For me CPAN installs to
 /usr/local/share/perl/5.10.0/
While Debian installs to
 /usr/share/perl/5.10.0/

Notice, Debian doesn't install to local and shouldn't, and cpan only
installs to local as it should. Unfortunately, CPANP isn't configured
properly.

Confirm a number lower than 0.32 which is the current.
$ perl -MArchive::Extract\ 999
My version returns "Archive::Extract version 999 required--this is
only version 0.24 ."

$ sudo cpan Archive::Extract
$ perl -MArchive::Extract\ 999
Confirm a number higher than your previous

Now lets make sure the file exists where it should, you'll see CPAN
installed the update to /usr/local/share/perl
$ ls -la /usr/local/share/perl/5.10.0/Archive/Extract.pm
-r--r--r-- 1 root root 46860 2009-06-12 08:22
/usr/local/share/perl/5.10.0/Archive/Extract.pm

Now, lets delete that
rm -rf /usr/local/share/perl/5.10.0/Archive/

$ perl -MArchive::Extract\ 999
This should return the same number it did when we started.

Now lets install this module with CPANPLUS
$ sudo cpanp install Archive::Extract

Make sure it is update
$ perl -MArchive::Extract\ 999
You should have a version higher than when you started, just like
after you ran CPAN

$ sudo updatedb && locate Archive/Extract.pm | grep -vi cpan
/usr/share/perl/5.10.0/Archive/Extract.pm
Notice only one file (in the same location as the one you had before
you started this scenario that came with the package "perl-modules")

$ grep '$VERSION' /usr/share/perl/5.10.0/Archive/Extract.pm
use vars qw[$VERSION $PREFER_BIN $PROGRAMS $WARN $DEBUG
$VERSION            = '0.32';
Notice that one file has the newest version number

As you can see, there is only one installed version of the file when
you use CPANPLUS, there are two when you use CPAN. This is because
CPANPLUS is clobbering the file tracked by dpkg, which is because it
isn't configured properly. This is further evidenced  by the version
numbers in  /usr/share/perl/5.10.0/Archive/Extract.pm.

--
Evan Carroll
System Lord of the Internets






More information about the Perl-maintainers mailing list