[CentOS] repoquery -f does not work well.

Tue Sep 16 13:49:34 UTC 2014
Jonathan Billings <billings at negate.org>

On Tue, Sep 16, 2014 at 10:16:37AM +0530, dE wrote:
>
> Hi.
> 
> I've found inconstancy between output of repoquery and rpm. I was
> looking forward towards apache php 5.4 module which must provided by
> some package SCL (can someone tell me?).
> 
> rpm -qf /etc/httpd/modules/mod_proxy.so
> httpd-2.2.15-29.el6.centos.x86_64
> repoquery -qf /etc/httpd/modules/mod_proxy.so
> 
> so repoquery results in no output
> 
> yum list installed httpd
> Loaded plugins: fastestmirror
> Loading mirror speeds from cached hostfile
>  * c6-media:
> Installed Packages
> httpd.x86_64 2.2.15-29.el6.centos @c6-media
> 
> repoquery -qa httpd
> httpd-0:2.2.15-29.el6.centos.x86_64
> 
> No wonder libphp5.so results in no output.

The 'httpd' package actually contains the mod_proxy.so as
/usr/lib64/httpd/modules/mod_proxy.so.  Running
'repoquery -f /usr/lib64/httpd/modules/mod_proxy.so' will generate the
correct response.

RPM, on the other hand, has the benefit of having a local filesystem
with the actual files installed.

One of the first things that the 'rpm' command does is stat() the path 
/etc/httpd/modules, discover it's a symlink, and then run the actual
path /usr/lib64/httpd/modules/mod_proxy.so through the RPM database.
The command is going to pass the 'real' location (as best it can find)
for any query with file paths.  'repoquery' doesn't have the benefit
of having the package installed, so it can't perform this local
lookup.  It has to rely only on what the package manifest lists.

-- 
Jonathan Billings <billings at negate.org>