了解 gtk+

了解 gtk+

我不确定“线程”在这种环境下是如何工作的,我的第一篇帖子不得不改变方向,因为steeldriver 指出我可能想将 gtk+ 视为我误解的根源,而事实上,我又回到了那里。这次让我问一个简单的问题。我应该从这个命令的输出中理解什么:

    $ 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
$ 

我的 ubuntu 系统是否使用其中的任何一个或全部?

答案1

该输出显示了名称以 开头的已安装包列表libgtk。所有这些包都已安装。无论它们是否实际需要(used) 又是另外一回事了。检查某个包是否需要的一个简单方法是运行aptitude why该包。例如,在我的(非常旧的)14.04.5 LTS 系统上:

$ aptitude why libgtk-3-0
i   firefox Depends libgtk-3-0 (>= 3.4)

您可以使用以下方式自动执行此操作:

$ dpkg -l libgtk* | grep '^i.*libgtk-*[0-9]' | awk '{print $2}' | 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     

只是awk打印每个输入行的第二个字段。xargs然后,该工具读取输入,并用它读取的输入{}内容替换您告诉它运行的命令(在本例中为)中的。因此,它将在返回的每个包上aptitude why运行。哦,我将您的操作简化为一个调用。您可以通过单独使用来进一步简化:aptitude whydpkggrepawk

$ dpkg -l libgtk* | awk '/^i.*libgtk-*[0-9]/{print $2}' 
libgtk-3-0:amd64
libgtk-3-bin
libgtk-3-common
libgtk2.0-0:amd64
libgtk2.0-bin
libgtk2.0-common

相关内容