2012-08-29 21 views

Odpowiedz

1

Powiedzmy, że chcemy wiedzieć, kto zależy libpng14

W 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 

I na jakiś czas, można zacząć uzyskiwać wyniki jak:

libpng14.so.14()(64bit) 
libpng14.so.14(PNG14_0)(64bit) 
DirectFB 
libpng14.so.14()(64bit) 
libpng14.so.14(PNG14_0)(64bit) 
MPlayer 

Trzeba w celu oddzielenia pakietów od wiadomości grep.

+2

(użyj modyfikatora -q polecenia 'grep', aby nie wyświetlać echa) – mveroone

1

Jeśli jest już zainstalowany, można użyć --whatrequires rpm:

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

Jeśli nie, [my] jesteś pecha do teraz.

+1

Dzięki - ale rpm nie działa poprawnie. Zgodnie z rpm nic w systemie nie jest wymagane przez cokolwiek innego. W związku z tym rpm może samodzielnie odinstalować wszystko :( – user626201

-1

to działa:

rpm -e --test PKGNAME 

Źródło: człowiek rpm

12

Możesz szukać (skrót od "se") dla pakietów, które wymagają pewnej pakiet z:

zypper se - wymaga nazwy opakowania

Ponadto, można szukać tylko wśród zainstalowanych pakietów z:

zypper se -i --requires packagename

Na przykład, aby poszukać pakietów wymagających 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.