how to have yum prefer one dependency over others

Kevin Kofler kevin.kofler at
Sat Sep 17 01:13:45 UTC 2011

Miloslav Trmač wrote:

> On Fri, Sep 16, 2011 at 8:42 PM, Richard Hughes <hughsient at>
> wrote:
>>> I think I'm going to suggest to fesco that all non-yum depsolvers be
>>> removed from the distribution. It just creates more work than it does
>>> value.
>> Ha! That's really funny, and it's just made my evening. While you're
>> asking fesco, can you also ask them to remove KDE and XFCE as well
>> please.
>> There's really nothing special about a package manager I assure you.
> How about the 1126 members of the "packager" group - i.e. most of us -
> that would have to create and maintain packages compatible with two
> different systems?

The yum default provider picking logic has become so complex (and dependent 
on what the user happens to have already installed!) that we effectively 
have to treat it as random and non-deterministic anyway. So if some other 
tool makes another random choice, that won't really change all that much.

If we want package maintainers to be able to actually choose what provider 
gets picked by default, all those complex heuristics must be replaced by 
something simple and dependable (e.g. 1. prefer same arch, 2. prever newest 
Provides version, 3. prefer shortest package name, 4. prefer first package 
name in the alphabet, period). (Also note that I intentionally use a linear 
decision tree, not scoring. If you weigh the criteria against each other, 
it's much harder to be certain of what will happen than if you just make the 
decision based on the highest-priority criterion only.) What zif is doing is 
a step in the right direction there, and for the consistency issue, it's yum 
that should be fixed, not zif. If the algorithm comes up with the wrong 
result, we need to fix the packages, not the algorithm (and this is the 
mistake yum made). And while making a decision based on what the user has 
already installed may make sense from a user's perspective, from a 
developer's perspective, it's completely unacceptable because it means 
different users can get different dependencies dragged in by the same 
Requires, even with the same tool!

        Kevin Kofler

More information about the devel mailing list