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

Re: Bug#46233: Can't install perl-5.005 on fresh potato system



On Wed, 29 Sep 1999, Peter S Galbraith wrote:

> I started from a new chroot slink installation of base-2.1.tgz, then
> `apt-get dist-upgrade' to potato, followed by the installation and
> purging of a few packages.  Then I needed perl, so I decide to install
> perl-5.005 and got the following:

> Get:3 http://http.us.debian.org unstable/main perl-5.005 5.005.03-4 [1733kB]   
> Fetched 2146kB in 4m33s (7862B/s)                                              
> E: This installation run will require temporarily removing the essential package perl-base due to a Conflicts/Pre-Depends loop. This is often bad, but if you really want to do it, activate the APT::Force-LoopBreak option.
> E: Internal Error, Could not early remove perl-base

Hm, I thought that long winded error message was rather clear - but this
is not an APT bug [near as I can tell], the perl people simply can't do
what they are doing and expect to have a sane upgrade path. 

Incidently that specific error in there is there because of the
apt-removing bash foolishness we had before.

Here is the little comment in the APT man page about the mentioned option:

       Force-LoopBreak
              Never Enable this option unless you  -really-  know
              what  you  are doing. It permits APT to temporarily
              remove  an  essential  package  to  break  a   Con-
              flicts/Conflicts   or   Conflicts/Pre-Depend   loop
              between two essential packages. SUCH A LOOP  SHOULD
              NEVER  EXIST  AND  IS A GRAVE BUG. This option will
              work if the essential packages are not  tar,  gzip,
              libc,  dpkg,  bash  or anything that those packages
              depend on.

The particular loop in this case is formed by the new perl-base depending
on the new per5-base (aka perl-5.0005) which conflicts with the old
perl-base. Since perl-base is essential it should never be removed. The
best way around this is to think up an upgrade strategy that doesn't
require removing perl-base before upgrading to the new perl, usualy this
is done with a Replaces: (an no conflicts)

Jason




Reply to: