使用zypper生成反向依赖关系

时间:2012-08-29 17:55:39

标签: dependencies opensuse package-managers meego zypper

使用zypper,我可以得到包A取决于包B.但是,我需要知道的是哪些包依赖于包B.

有没有办法生成反向依赖列表?

5 个答案:

答案 0 :(得分:20)

您可以搜索(缩写为" se")以查找需要特定包裹的包裹:

  

zypper se - 需要packagename

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

  

zypper se -i - 要求包名

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

答案 1 :(得分:2)

假设您想知道谁依赖于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 :(得分: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. 

如果没有,你现在暂时没有运气了。

答案 3 :(得分:0)

我希望它会有用:

for i in range(len(df)):
    df.A.iloc[i].update(df.B.iloc[i])
result=df.A

答案 4 :(得分:-1)

这有效:

rpm -e --test PKGNAME

来源: man rpm