how to have yum prefer one dependency over others

Nils Philippsen nils at
Tue Sep 20 13:47:01 UTC 2011

On Mon, 2011-09-19 at 18:11 +0200, drago01 wrote:
> On Mon, Sep 19, 2011 at 5:46 PM, tim.lauridsen at
> <tim.lauridsen at> wrote:
> > On Mon, Sep 19, 2011 at 1:00 PM, Kevin Kofler <kevin.kofler at> wrote:
> >> Matthew Garrett wrote:
> >>> Debian policy is that any virtual dependencies must also have an
> >>> explicit dependency. In your case it would be something like
> >>>
> >>> Requires: phonon-backend-gstreamer | phonon-backend
> >>
> >> Unfortunately, RPM does not support this idiom.
> >>
> > <trolling>
> > Why don't you just replace rpm, with deb too, while you are at it ?
> > </trolling>
> Well as long as the tools we are talking about
> 1) Do use rpm
> 2) Do valid dependency resolution (i.e not --nodeps or something like that)
> I don't see why we shouldn't allow them.
> lets say
> yum install foo does:
> foo, bar1, baz1
> $nonyumtool install foo does:
> foo, bar2, baz2
> Both bar1/baz1 and bar2/baz2 are valid deps for foo (both statify the
> dependency).
> So why would it matter what in the end?

I guess the discussion is more about if you extend your scenario this
way (and I'm picking DEs only as an example here, please don't start a
flamefest about it, there are worthier causes):

- bar1/baz1 are GNOME providers of bar/baz
- bar2/baz2 are KDE/XFCE/other DE providers of bar/baz
- GNOME is installed on the machine, but not KDE/XFCE/other DE

In that case, you really want bar1/baz1 to be installed over the others
(which would pull in KDE/XFCE/other DE base libraries), even though the
other solution is correct dependency-wise.

A much trickier scenario would be if a (say multi-user, terminal server)
machine had both GNOME and KDE/XFCE/other DE installed: it may be
desirable to install both bar1/baz1 and bar2/baz2 so users of each DE
got their own native providers of bar/baz. I don't think we can describe
this intended outcome in ways of RPM requirements today, and it'd
probably be pretty hard even with Suggests/Recommends because it partly
depends on policy, i.e. what the admin wants. Nothing in the system can
tell the package manager right now if which of these options should be
used in this case.

Nils Philippsen      "Those who would give up Essential Liberty to purchase 
Red Hat               a little Temporary Safety, deserve neither Liberty
nils at       nor Safety."  --  Benjamin Franklin, 1759
PGP fingerprint:      C4A8 9474 5C4C ADE3 2B8F  656D 47D8 9B65 6951 3011

More information about the devel mailing list