I have a question that I hope someone can help me with.
The problem is that irqbalance breaks on GCE and KVM (and likely other virtualization platforms). So, in our debian package for google-compute-engine , where we have a script that balances the interrupts for scsi and network devices across CPU's correctly, we conflict with irqbalance because it literally does the opposite. The Debian kernel package however recommends irqbalance . Some users running `apt upgrade` (not apt-get) run into a problem where our package gets removed because the kernel will install irqbalance when it gets updated.
One way around this is to hard configure apt to never install recommends but I don't believe this is the right way to go as it conflicts with the default in Debian and really doesn't solve the real issue.
According to the policy manual , using 'breaks' should work here because our package is installed already and the kernel is trying to install irqbalance on upgrade. However, this doesn't seem to work correctly in all cases. Using just `apt upgrade` it correctly says it cannot install the kernel because it has conflicting dependencies. Using `apt-get upgrade` however still removes our package and installs irqbalance (same with apt-get dist-upgrade). What I did find is that changing the priority of our package to 'required' instead of 'optional' seems to work correctly with 'breaks'. From what I gather about 'required', it is reserved for things like the kernel package. However, in this case I suspect the priority is factored into the logic apt and apt-get are using here.
So, what is the right way to fix this? And yes, I do believe the having irqbalance as a recommends for the kernel package is just wrong- however lets deal with that separately.