12

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

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

4

6 回答 6

24

您可以搜索(缩写为“se”)需要特定包的包:

zypper se --需要包名

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

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.
于 2015-11-19T11:34:13.650 回答
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 消息分开。

于 2012-12-31T16:28:18.793 回答
0

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

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

如果没有,你[我们]现在不走运。

于 2012-09-07T23:52:35.943 回答
0

Zypper 1.14.33+--requires-pkg可能会产生比--requires. 有关详细信息,请参见此处

# zypper se --requires-pkg packagename

# zypper help search | grep -A1 requires-pkg
--requires-pkg          Search for all packages that require any of the provides of the
                        package(s) matched by the input parameters.
于 2021-09-28T13:17:25.440 回答
-1

这有效:

rpm -e --test PKGNAME

资料来源:man rpm

于 2015-06-24T06:14:26.633 回答
-1

我希望它有用:

betatester@myryzen:~/tmp> rpm -qi --requires \`rpm -qa | grep 'package-name'\`
于 2020-09-18T09:56:42.837 回答