使用zypper
,我可以得到包 A 依赖于包 B。但是,我需要知道哪些包依赖于包 B。
有没有办法生成反向依赖列表?
使用zypper
,我可以得到包 A 依赖于包 B。但是,我需要知道哪些包依赖于包 B。
有没有办法生成反向依赖列表?
您可以搜索(缩写为“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.
假设您想知道谁依赖于 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 消息分开。
如果已经安装,可以使用 rpm --whatrequires:
--whatrequires CAPABILITY
Query all packages that require CAPABILITY for proper functioning.
Note that this does not return what requires a given package.
如果没有,你[我们]现在不走运。
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.
这有效:
rpm -e --test PKGNAME
资料来源:man rpm
我希望它有用:
betatester@myryzen:~/tmp> rpm -qi --requires \`rpm -qa | grep 'package-name'\`