使用zypper生成反向依赖关系

use*_*201 9 dependencies package-managers opensuse meego zypper

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

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

小智 22

您可以搜索(缩写为"se")包含需要某个包的包:

zypper se - 需要packagename

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

zypper se -i - 需要packagename

例如,要查找需要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.
Run Code Online (Sandbox Code Playgroud)


Mic*_*dis 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
Run Code Online (Sandbox Code Playgroud)

不久之后,您将开始得到如下结果:

libpng14.so.14()(64bit)
libpng14.so.14(PNG14_0)(64bit)
DirectFB
libpng14.so.14()(64bit)
libpng14.so.14(PNG14_0)(64bit)
MPlayer
Run Code Online (Sandbox Code Playgroud)

但是,您需要将包与 grep 消息分开。

  • (使用 grep 命令的 -q 修饰符来不回显结果) (3认同)