2012-08-29 43 views
8

随着zypper,我可以得到一个包依赖于包B.不过,我需要知道的是哪些软件包依赖于包B.反向依存产生

是否有产生反依存列表的方式?

回答

1

比方说,你想知道谁取决于libpng14

在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 

你在一段时间,你会开始得到的结果一样:

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

您需要然而,将软件包从grep消息中分离出来。

+2

(使用'grep'命令的-q修饰符不回显结果) – mveroone

1

如果已经安装,您可以用rpm --whatrequires:

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

如果没有,你(我们)'再幸运的了现在。

+1

谢谢 - 但是rpm似乎不能正常工作。根据rpm,系统中不需要其他任何东西。因此,rpm可以自行卸载所有东西:( – user626201

-1

这工作:

rpm -e --test PKGNAME 

来源:人转

12

你可以搜索(缩写为 “SE”),对于需要一定的封装包:

zypper的se - 要求包名

此外,您只能安装的软件包中使用搜索:

zypper的SE -i --requires包名

例如,寻找需要的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.