Generate inverse dependency with zypper

With zypper I can get package A, depends on package B. However, I need to know which packages depend on package B.

Is there a way to create a list of inverse dependencies?

+8
dependencies package-managers opensuse meego zypper
source share
4 answers

Let's say you want to know who depends on libpng14

In tcsh:

 zypper search -i | cut -d \| -f 2 | tr -s '\n' ' ' > z.txt foreach i ( `cat z.txt` ) zypper info --requires $i |grep libpng14 &&echo $i end 

And after a while you will begin to receive results such as:

 libpng14.so.14()(64bit) libpng14.so.14(PNG14_0)(64bit) DirectFB libpng14.so.14()(64bit) libpng14.so.14(PNG14_0)(64bit) MPlayer 

However, you need to separate packages from grep messages.

+1
source share

You can search (abbreviated "se") for packages that require a specific package with:

zypper se --requires packagename

In addition, you can only search among installed packages with:

zypper se -i --requires packagename

For example, to search for packages that require libpng:

 # zypper se -i --requires libpng Loading repository data... Reading installed packages... S | Name | Summary | Type --+-----------------------------+---------------------------------------------------------------------+-------- i | DirectFB | Graphics Library for Framebuffer Devices | package i | MPlayer | Multimedia Player | package i | cairo-devel | Development environment for cairo | package etc. 
+12
source share

If it is already installed, you can use rpm --whatrequires:

 --whatrequires CAPABILITY Query all packages that require CAPABILITY for proper functioning. Note that this does not return what requires a given package. 

If not, you [us] are out of luck.

+1
source share

It works:

 rpm -e --test PKGNAME 

Source: man rpm

-one
source share

All Articles