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.