Bug#568487: perl-base: Perl modules installed in place not in %INC during upgrade from etch

Niko Tyni ntyni at debian.org
Fri Feb 5 07:05:13 UTC 2010


On Fri, Feb 05, 2010 at 03:05:28PM +1100, Ben Marsh wrote:
> (env56) vmwprx1:/usr/lib/perl# ls -asl
> total 24
>  4 drwxr-xr-x  4 root root  4096 Feb  5 14:39 .
> 12 drwxr-xr-x 46 root root 12288 Feb  5 14:39 ..
>  4 drwxr-xr-x  2 root root  4096 Jan 19 12:20 5.10
>  4 drwxr-xr-x 32 root root  4096 Feb  5 14:39 5.10.0
> (env56) vmwprx1:/usr/lib/perl# rmdir 5.10
> (env56) vmwprx1:/usr/lib/perl# ln -s 5.10.0/ 5.10
> (env56) vmwprx1:/usr/lib/perl# 
> 
> NOTE: the 5.10 directory was completely empty when I rmdir'd it.

That's indeed remarkably broken. It looks like something had created
/usr/lib/perl/5.10 as a regular directory before you upgraded, and dpkg
will not replace a directory (even an empty one) with a symlink.

This is the first report of this failure mode I've seen.

Do you have any idea what could have created the 5.10 directory, probably
on January 19th? There are certainly no packages in Etch that put files
there, and only perl-base in Lenny. Maybe a CPAN install gone wrong or a
broken package installation script? If you still have /var/log/dpkg.log
from Jan 19, please check that.

Not sure how we could guard against this. Maybe have perl-base.preinst
that refuses installation if the directory already exists and is not
a symlink.
-- 
Niko Tyni   ntyni at debian.org






More information about the Perl-maintainers mailing list