【问题标题】:How do you find out which version of GTK+ is installed on Ubuntu?你如何知道 Ubuntu 上安装了哪个版本的 GTK+?
【发布时间】:2010-09-12 16:08:47
【问题描述】:

我需要确定 Ubuntu 上安装了哪个版本的 GTK+

男人似乎没有帮助

【问题讨论】:

    标签: linux ubuntu gtk gnome


    【解决方案1】:

    This suggestion 会告诉您安装了 2.0 的哪个次要版本。不同的主要版本将具有不同的包名称,因为它们可以在系统上共存(以支持使用旧版本构建的应用程序)。

    即使对于通常只会让您在系统上拥有一个版本的开发文件,您也可以在同一系统上拥有 gtk 1.x 版本和 gtk 2.0 版本(包含文件位于名为 gtk 的目录中-1.2 或 gtk-2.0)。

    因此,简而言之,“系统上有什么版本的 GTK”没有简单的答案。但是……

    尝试类似:

    dpkg -l libgtk* | grep -e '^i' | grep -e 'libgtk-*[0-9]'
    

    列出系统上的所有 libgtk 软件包,包括 -dev 软件包。 dpkg -l 将列出 dpkg 知道的所有软件包,包括当前未安装的软件包,因此我使用 grep 仅列出已安装的软件包(行以 i 开头)。

    或者,如果它是您感兴趣的标头等版本,使用 pkg-config 可能更好:

    pkg-config --modversion gtk+
    

    会告诉你安装了哪个版本的 GTK 1.x 开发文件,并且

    pkg-config --modversion gtk+-2.0
    

    会告诉你 GTK 2.0 的版本。旧的 1.x 版本也有自己的 gtk-config 程序来做同样的事情。同样,对于 GTK+ 3:

    pkg-config --modversion gtk+-3.0
    

    【讨论】:

    • 对 windows 有什么建议吗?如何在 windows 上找到已安装的 gtk 版本?
    • pkg-config 程序是 Windows 安装的一部分。所以在命令行中编写 pkg-config --modversion gtk+-2.0 应该可以。
    • 很确定 dpkg -l libgtk* 中的 libgtk* 必须用单引号 (dpkg -l 'libgtk*') 括起来,以防止 shell 级别的通配符扩展。
    • 如果没有全局匹配,并且可能不在这里,那么它将被传递给未扩展的命令,因此这将起作用。但是引用它确实会更安全。
    • 检查 gtkmm 试试:pkg-config --modversion gtkmm-3.0
    【解决方案2】:

    获取 GTK3 版本:

    dpkg -s libgtk-3-0|grep '^Version'
    

    或者只是版本号

    dpkg -s libgtk-3-0|grep '^Version' | cut -d' ' -f2-
    

    【讨论】:

      【解决方案3】:

      你可以使用这个命令:

      $ dpkg -s libgtk2.0-0|grep '^Version'
      

      【讨论】:

      • 这是 GTK+ 2 的次要版本,但 GTK+ 3 已经推出多年,而 GTK+ 4 即将推出。
      【解决方案4】:

      这并不难。

      只需从终端检查您的 gtk+ 工具包实用程序版本:

      gtk-launch --version
      

      【讨论】:

        【解决方案5】:

        您也可以只编译以下程序并在您的机器上运行它。

        #include <gtk/gtk.h>
        #include <glib/gprintf.h>
        
        int main(int argc, char *argv[])
        {
            /* Initialize GTK */
            gtk_init (&argc, &argv);
        
            g_printf("%d.%d.%d\n", gtk_major_version, gtk_minor_version, gtk_micro_version);
            return(0);
        }
        

        编译(假设上面的源文件名为version.c):

        gcc version.c -o version `pkg-config --cflags --libs gtk+-2.0`
        

        当你运行它时,你会得到一些输出。在我的旧嵌入式设备上,我得到以下信息:

        [root@n00E04B3730DF n2]# ./version 
        2.10.4
        [root@n00E04B3730DF n2]#
        

        【讨论】:

        • 如果我按照你说的编译,我得到 2.24.27。如果我用--libs gtk+-3.0 编译,我得到3.10.8。这似乎只是告诉我我有两者的开发文件,但不是我目前正在使用的。
        • gtkv.c:1:21:致命错误:gtk/gtk.h:没有这样的文件或目录
        • @tsbertalan “目前使用”取决于您的各种应用所链接的 GTK 版本。
        【解决方案6】:

        试试,

        apt-cache policy libgtk2.0-0 libgtk-3-0 
        

        或者,

        dpkg -l libgtk2.0-0 libgtk-3-0
        

        【讨论】:

          【解决方案7】:

          您也可以直接打开 synaptic 并搜索 libgtk,它会准确显示您安装了哪个 lib。

          【讨论】:

            【解决方案8】:

            我认为独立于分布的方式是:

            gtk-config --version

            【讨论】:

            • 虽然 gtk-config 独立于发行版,但它仅适用于 GTK 1.x。正如我在回答中所说,较新版本的正确方法是使用 pkg-config。
            【解决方案9】:

            试试:

             dpkg-query -W libgtk-3-bin
            

            【讨论】:

            • 当我用2 替换3 时,这是唯一表现不同的答案。
            【解决方案10】:

            这将获得 GTK+ 2 和 GTK+ 3 的 GTK+ 库版本。

            dpkg -l | egrep "libgtk(2.0-0|-3-0)"
            

            由于主要版本是可并行安装的,您的系统上可能同时安装了这两个版本,这就是我的情况,所以上面的命令在我的 Ubuntu Trusty 系统上返回:

            ii  libgtk-3-0:amd64                                      3.10.8-0ubuntu1.6                                   amd64        GTK+ graphical user interface library
            ii  libgtk2.0-0:amd64                                     2.24.23-0ubuntu1.4                                  amd64        GTK+ graphical user interface library
            

            这意味着我安装了 GTK+ 2.24.23 和 3.10.8。

            如果您想要的是开发文件的版本,请使用pkg-config --modversion gtk+-3.0,例如 GTK+ 3。要将其扩展到 GTK+ 的不同主要版本,使用一些 sed 魔法,这给出:

            pkg-config --list-all | sed -ne 's/\(gtk+-[0-9]*.0\).*/\1/p' | xargs pkg-config --modversion
            

            【讨论】:

              【解决方案11】:

              为了让答案比 Ubuntu(我有 Redhat)更笼统:

              gtk 通常安装在 /usr 下,但也可能安装在其他位置。这应该在环境变量中可见。检查与

              env | grep gtk
              

              然后尝试查找 gtk 文件的存储位置。例如,使用 locate 和 grep。

              locate gtk | grep /usr/lib
              

              这样,我找到了/usr/lib64/gtk-2.0,里面有2.10.0这个子目录,里面有很多.so库文件。我的结论是我有 gtk+ 2.10 版。这和Redhat上的rpm命令比较一致:rpm -qa | grep gtk2,所以我觉得我的结论是对的。

              【讨论】:

                【解决方案12】:

                因为apt-cache policy 将列出所有可用的匹配项,即使未安装,我建议使用此命令来获得系统上安装的 GTK 相关软件包的更易于管理的候选清单:

                apt list --installed libgtk*
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-09-12
                  • 2011-05-21
                  • 1970-01-01
                  • 2012-05-08
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多