2012-08-29 47 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.