On 2008-10-31 03:24 +0100, Victor Munoz wrote:

> Hello. I've got a very complex situation here with perl. I'm running
> sid, and last weekend's update left my system partially broken.

It seems you had not upgraded for a long time (half a year at least).

> Basically, perl was left in a "partially installed" status. This means
> that perl itself and several other packages cannot be upgraded because
> the system can't find some perl files. 
>
> Currently, I've got several packages flaged for
> removal/install/update. So when I start aptitude I press "g", and then
> it proceeds to do its stuff, but I get things like this:
>
> Reading package fields... Done
> Reading package status... Done
> Retrieving bug reports... Done
> Parsing Found/Fixed information... Done
> (Reading database ... 206704 files and directories currently installed.)
> Removing ttf-liberation ...
> Can't locate File/Copy.pm in @INC (@INC contains: /etc/perl
> /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5
> /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8
> /usr/local/lib/site_perl .) at /usr/bin/defoma-font line 7.
> BEGIN failed--compilation aborted at /usr/bin/defoma-font line 7.

This is a well known and hard to solve problem of the perl 5.8 -> 5.10
upgrade.  See the following bugs, for example:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482140
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503712

> And I guess most of it is due to the fact that perl failed to be
> upgraded correctly, for whatever reason I don't understand. 

The reason is that the new perl-modules was unpacked first, and before
perl-base could be unpacked _another_ package was unpacked which had a
command in its preinst or prerm script that required a perl module from
the perl-modules package.  Since the /usr/bin/perl command can no longer
find them (see the above "Can't locate File/Copy.pm..." error message),
that script fails and apt aborts the whole operation, leaving the system
in a bad state.

> For reference, perl-base is flagged for update, from 5.8.8-12 to
> 5.10.0-16, but currently the perl package has a "B" flag and
> perl-modules has a "u" flag, and aptitude says I have version
> 5.10.0-16 installed, which is the latest. But they've not been
> configured completely, and several things do not work. 
>
> None of my perl scripts work, and some other things don't either (xdvi
> does not work, I have to start it directly with xdvi.bin; and printer
> is not working either, don't know if perl is involved here).
>
> I'd appreciate any help to return the system to a workable state. 

You need to get the perl packages in sync first.  Since apt will not
help you (it insists of fixing broken packages first, and that cannot be
done), you have to invoke dpkg directly:

# dpkg --unpack /var/cache/apt/archives/*perl*5.10.0-16*

should do the trick¹, and aptitude will hopefully be able to fix the rest
automatically afterwards.

> I thought of removing all perl packages and installing again, but I
> would pass through a state where many dependences are broken, and I'm
> not sure that's a safe thing to do now. 

That would indeed be too risky, and it is not needed.

HTH,
    Sven


¹ There might be dependency problems, though.  If so, please report them
  back.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to