[PlanetCCRMA] dependency hell

Fernando Pablo Lopez-Lezcano nando@ccrma.Stanford.EDU
Wed Oct 29 09:31:01 2003


> I updated my sources.list for redhat 8.0, updated the packages, got an error 
> message about 2.4.21-1.ll.acpi more recent than 2.4.20 and rebooted.
> 
> Now when I launch synaptic it tells me that
> 
> - alsa-kernel-2.4.20.1.caps.rh8
> - alsa-kernel-2.4.22-6.ll.rh8
> - planetccrma-core
> 
> are broken.
> 
> What's going on? I'm confused. Really. I don't remember having forced any 
> packages (no rpm --nodeps or --force). It may be my fault, but then again, 
> will someone be kind enough to point me 
> 
> - where did I get wrong (if possible)

You did not do anything wrong (I think). Although at some point you must
have gotten an error from a dist-upgrade. 

> - to a how-to use apt-get/synaptic cleanly with planet ccrma (ie when to manually
>   change things)
> - what should I do now :(

This is probably due to "apt-get dist-upgrade" messing up things (a bug
or feature in apt-get, I would say). The problem is as follows. 

A dist-upgrade tries to upgrade everything, including the kernel. It
picks up the first kernel and alsa that satisfies the dependencies (I
cannot control which one, it just picks one). So it chooses
2.4.20-20.1.caps as the selected one. It also chooses the matching alsa
driver for it. It then calls rpm in two stages. The first call is a "rpm
-ivh" to install the kernel package. That fails because you have a newer
kernel installed (2.4.21-1.ll.acpi) and rpm does not want to install
older packages unless a command line argument allows for that
("--oldpackage"). So that call to rpm fails. Now, instead of apt failing
with an error message it calls rpm _again_ to install the rest of the
packages, which include the kernel alsa modules. Those install fine
(because the call assumes that the kernel was installed - bug in apt).
So you end up with a missing dependency. 

How to fix?

- erase the alsa-kernel packages that do not have a matching kernel
- erase planetccrma-core
- reinstall planetccrma-core with the incantaton outlined in the Planet
  CCRMA pages. 

If you are not successful please send the output of
  apt-get check
to see what needs to be done. 

How to REALLY fix this?
I think I will have to add the flag permanently to the apt setup (in
/etc/apt/apt.conf). Right now it is only used to update the kernel but
probably I have to enable it globally. The kernel picked by dist-upgrade
is probably not the right one but that should fix this problem. I'm
reluctant to do this because I don't know if there may be another
problem triggered by the change (should not, of course, but you know
about "should"s). 

-- Fernando