What does "require" actually mean?
Suvayu Ali
fatkasuvayu+linux at gmail.com
Mon Aug 26 01:21:22 UTC 2013
On Sun, Aug 25, 2013 at 01:48:58AM +0200, Michael Schwendt wrote:
> On Sat, 24 Aug 2013 16:35:22 +0200, Suvayu Ali wrote:
>
> > > package. Run "rpm -e --test libvdpau" to display those dependencies.
> > > The package may be renamed (or the contents moved to a different
> > > package) without breaking the dependencies.
> > >
> > > The repoquery tool can distinguish between --exactdeps and --alldeps
> > > queries:
> > >
> > > $ repoquery --exactdeps --whatrequires libvdpau
> > > $
> >
> > I was also confused by this for a long time. Thanks for the
> > explanation. Given the two kinds of dependencies, shouldn't one always
> > query for --alldeps?
>
> Yes, preferably.
>
> For repoquery that option is the default for a long time (but it hasn't
> been the default always).
>
> > That seems the more practical option. If that is
> > the case, what good is `rpm -q --whatrequires'?
>
> Well, it's a matter of definition. That low-level RPM based query doesn't
> operate on package names, but on "things" provided by packages. RPM
> dependencies are not restricted to package names. With the example
> of "libvdpau", even a completely different package with a different name
> could provide something called "libvdpau". It's coincidence that it's
> also the name of an installed package. The package name is also just one
> of the "things" provided by the package:
>
> $ rpm -q --provides libvdpau
> config(libvdpau) = 0.7-1.fc20
> libvdpau = 0.7-1.fc20
> libvdpau(x86-64) = 0.7-1.fc20
> libvdpau.so.1()(64bit)
> libvdpau_trace.so.1()(64bit)
>
> Nowadays, with automatic dependencies on the actual library name,
> typically there is no extra dependency on the package name anymore.
>
> $ rpm -q --whatrequires 'libvdpau.so.1()(64bit)'
> gstreamer1-plugins-bad-free-1.1.3-1.fc20.x86_64
> gstreamer-plugins-bad-free-0.10.23-19.fc20.x86_64
>
> That's why RPM told the truth that no package requires "libvdpau" anymore.
>
> > I also notice that --alldeps is a repoquery only option, does that mean
> > the only way to get this info when offline is to do `rpm -e --test',
> > `yum remove', or call repoquery with -C?
>
> Yes. "rpm -e --test" is a very very old command, btw.
Thanks a lot Michael! :)
--
Suvayu
Open source is the future. It sets us free.
More information about the users
mailing list