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

