[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Perl upgrade dilemma.

I'm trying to upgrade a testing machine but the upgrade failed around perl-base. Now any dpkg commands I try seem to fail because /usr/bin/perl segfaults.

How can I fix perl if I can't use dpkg?

Here is the output from aptitude around the first failure:

Preparing to replace perl 5.10.0-18 (using .../perl_5.10.0-19_i386.deb) ...
Unpacking replacement perl ...
Preparing to replace perl-base 5.10.0-18 (using .../perl-base_5.10.0-19_i386.deb) ...
Unpacking replacement perl-base ...
Processing triggers for man-db ...
syntax error at -e line 1, near "3];"
syntax error at -e line 1, near "2];"
Missing right curly or square bracket at -e line 2, at end of line
Execution of -e aborted due to compilation errors.
Setting up perl-base (5.10.0-19) ...

It seems that the old /usr/bin/perl is still there so perhaps the segfaults are because of library upgrades (libc6 was upgraded earlier in the process).

I tried reverting libc6 (2.7-18 to 2.7-16). It seems odd that versions that close would cause problems. Reverting didn't work because dpkg segfaults:

dpkg: error processing /var/cache/apt/archives/libc6_2.7-16_i386.deb (--install):
 subprocess pre-installation script killed by signal (Segmentation fault)

Though libc6.preinst doesn't use perl. Either I'm misunderstanding or the problem is more general.

Of course the above syntax errors (in man-db.postinst) don't really seem to be errors. And another system (similar but with many more packages) upgraded cleanly. So I'm at a loss why things would fail in the first place.


Reply to: