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

Re: Upgrade report: woody->sarge



On Sun, Aug 01, 2004 at 03:52:54PM -0400, Joey Hess wrote:
>(Redirecting to correct lists.)
>
>Rainer Dorsch wrote:
>> 849 packages upgraded, 237 newly installed, 26 to remove and 4  not upgraded.
>> 39 packages not fully installed or removed.
>> Need to get 0B/626MB of archives. After unpacking 431MB will be used.
>> Do you want to continue? [Y/n]
>> /usr/bin/perl: relocation error: /usr/lib/perl5/auto/Text/Iconv/Iconv.so: un
>> defined symbol: Perl_Gthr_key_ptr
>> 
>> Then I started upgrading libc6 and perl with dpkg -i <list of packetnames>
>>
>> I uploaded the transscript to
>> 
>> http://alzental-castle2.homelinux.org/woody-sarge-update.txt.gz
>
>It seems that our perl upgrade from woody to sarge is not robust if it
>dies in the middle. The X problem below caused the first apt run to fail
>with various parts of perl unpacked and not configured. Then it looks
>like debconf (which uses Iconv) was unable to run. Probably a dpkg
>--configure -a would have cleared this up; reinstalling perl manually
>had the same result.

Not configuration, there's not really any to speak of.  The problem is
that neither perl-base, nor libc6 are unpacked before the initial install dies,
although libtext-iconv-perl is, which depends on both of those packages:
 
 Preparing to replace perl-modules 5.6.1-8.7 (using .../perl-modules_5.8.4-2_all.deb) ...
 Unpacking replacement perl-modules ...
 Selecting previously deselected package libdb4.2.
 Unpacking libdb4.2 (from .../libdb4.2_4.2.52-16_i386.deb) ...
 Selecting previously deselected package libgdbm3.
 Unpacking libgdbm3 (from .../libgdbm3_1.8.3-2_i386.deb) ...
 Preparing to replace perl 5.6.1-8.7 (using .../archives/perl_5.8.4-2_i386.deb) ...
 Unpacking replacement perl ...
 Preparing to replace libtext-iconv-perl 1.2-1 (using .../libtext-iconv-perl_1.2-3_i386.deb) ...
 Unpacking replacement libtext-iconv-perl ...

Note the output from the next command "apt-get remove --purge xlibs-dev":

 You might want to run `apt-get -f install' to correct these:
 Sorry, but the following packages have unmet dependencies:
 [...]
   libtext-iconv-perl: Depends: libc6 (>= 2.3.2.ds1-4) but 2.2.5-11.5 is to be installed
                       Depends: perl-base (>= 5.8.3-2) but 5.6.1-8.7 is to be installed
                       Depends: perlapi-5.8.3
 [...]

It's probable that "apt-get install -f" as suggested may have corrected
this automatically.

The real problem here would seem to be the possibility of
debconf being called by apt (via DPkg::Pre-Install-Pkgs) or
dpkg (maint scripts) with a half-installed system.

While this should be fine if only perl-base is used (the old or
new version should work stand-alone, even if other parts of perl have
been unpacked/installed), although a complex dependency chain like:

  debconf->debconf-i18n->{liblocale-gettext-perl,libtext-iconv-perl,...}->...

cannot be guaranteed to have been met when debconf is called.

In this particular instance, having libtext-iconv-perl pre-depend on
perl-base (as liblocale-gettext-perl does) *may* have avoided the
problem...  then again it may just have compounded it.

--bod



Reply to: