descobrindo sobre o gtk +

3

Não tenho certeza de como os "threads" funcionam nesse ambiente, e meu primeiro post teria que mudar de direção, pois a Steeldriver apontou que eu provavelmente gostaria de ver o gtk + como fonte de meu mal-entendido, e realmente Eu estou lá novamente. Deixe-me fazer uma pergunta simples desta vez. O que devo entender da saída deste comando:

    $ dpkg -l libgtk* | grep -e '^i' | grep -e 'libgtk-*[0-9]'
ii  libgtk-3-0:amd64             3.18.9-1ubuntu3.3         amd64        GTK+ graphical user interface library
ii  libgtk-3-bin                 3.18.9-1ubuntu3.3         amd64        programs for the GTK+ graphical user interface library
ii  libgtk-3-common              3.18.9-1ubuntu3.3         all          common files for the GTK+ graphical user interface library
ii  libgtk2-perl                 2:1.2498-1                amd64        Perl interface to the 2.x series of the Gimp Toolkit library
ii  libgtk2.0-0:amd64            2.24.30-1ubuntu1.16.04.2  amd64        GTK+ graphical user interface library
ii  libgtk2.0-bin                2.24.30-1ubuntu1.16.04.2  amd64        programs for the GTK+ graphical user interface library
ii  libgtk2.0-cil                2.12.10-6                 amd64        CLI binding for the GTK+ toolkit 2.12
ii  libgtk2.0-common             2.24.30-1ubuntu1.16.04.2  all          common files for the GTK+ graphical user interface library
$ 

O meu sistema Ubuntu utiliza algum ou todos estes?

    
por Fred Flintstone 06.02.2018 / 21:35

1 resposta

1

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
    
por terdon 08.02.2018 / 11:33