[CentOS] determining what depends on a rpm

Sat Dec 15 21:18:22 UTC 2018
Phil Perry <pperry at elrepo.org>

On 15/12/2018 21:05, Frank Cox wrote:
> yum remove lightdm
> 
> That command tells me that it's also going to remove lightdm-gobject and lightdm-gtk.
> 
> rpm -q --whatrequires lightdm
> no package requires lightdm
> 
> So obviously we can't take the word of the --whatrequires option from the rpm command since yum remove tells me that there are two.
> 
> That being the case, using yum remove to determine the actual dependency chain is not all that helpful since (a) only the root user can do that, which seems unnecessary when all you want to get is a report about the installed packages that the rpm command can already read as a user, and (b) you're taking a chance of fat-fingering something and destroying your system by accident.
> 
> Ultimately it would be very useful to have some kind of a tool that would generate a report from the rpms installed on a system and tell you exactly what depends on what else.  Among other things you could use that report to remove stuff that's not needed in any installation.
> 

Take a look at what the package provides:

rpm -q --provides lightdm
config(lightdm) = 1.25.0-1.el7
lightdm = 1.25.0-1.el7
lightdm(x86-64) = 1.25.0-1.el7
service(graphical-login) = lightdm

and then look at what requires those 'provides':

rpm -q --whatrequires 'lightdm(x86-64)'
lightdm-qt-1.25.0-1.el7.x86_64
lightdm-gobject-1.25.0-1.el7.x86_64

It should be simple enough to script that, and that should get you started.

Hope that helps.