繁体   English   中英

你如何知道 Ubuntu 上安装了哪个版本的 GTK+?

[英]How do you find out which version of GTK+ is installed on Ubuntu?

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

男人似乎没有帮助

这个建议会告诉你安装的是哪个次要版本的 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

获取 GTK3 版本:

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

或者只是版本号

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

你可以使用这个命令:

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

这不是那么困难。

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

gtk-launch --version

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

#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]#

尝试,

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

要么,

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

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

我认为与分布无关的方式是:

gtk-config --version

尝试:

 dpkg-query -W libgtk-3-bin

这将获得 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

为了使答案比 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 rpm -qa | grep gtk2 ,所以我认为我的结论是正确的。

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

apt list --installed libgtk*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM