Essa saída mostra a lista de pacotes installe cujo nome começa com libgtk
. Todos esses estão instalados. Se são realmente necessários ou não, o (em inglês) é outra coisa. Uma maneira fácil de verificar se um pacote é necessário é executar aptitude why
no pacote. Por exemplo, no meu (muito antigo) sistema 14.04.5 LTS:
$ aptitude why libgtk-3-0
i firefox Depends libgtk-3-0 (>= 3.4)
Você pode automatizar isso com:
$ dpkg -l libgtk* | grep '^i.*libgtk-*[0-9]' | awk '{print }' | xargs -I{} aptitude why {}
i firefox Depends libgtk-3-0 (>= 3.4)
i evince Depends gnome-icon-theme (>= 2.17.1)
i A gnome-icon-theme Depends libgtk-3-bin
i firefox Depends libgtk-3-0 (>= 3.4)
i A libgtk-3-0 Depends libgtk-3-common (>= 3.10.8)
i firefox Depends libgtk2.0-0 (>= 2.14)
i firefox Depends libgtk2.0-0 (>= 2.14)
i A libgtk2.0-0 Recommends libgtk2.0-bin
i firefox Depends libgtk2.0-0 (>= 2.14)
i A libgtk2.0-0 Depends libgtk2.0-common
O awk
apenas imprime o segundo campo de cada linha de entrada. A ferramenta xargs
, em seguida, lê a entrada e substitui o {}
no comando que você diz para executar ( aptitude why
, neste caso) com o que lê como entrada. Portanto, ele executará aptitude why
em cada um dos pacotes retornados por dpkg
. Ah, e simplifiquei seu grep
em uma única chamada. Você poderia simplificar ainda mais usando awk
sozinho:
$ dpkg -l libgtk* | awk '/^i.*libgtk-*[0-9]/{print }'
libgtk-3-0:amd64
libgtk-3-bin
libgtk-3-common
libgtk2.0-0:amd64
libgtk2.0-bin
libgtk2.0-common