你如何知道在Ubuntu上安装了哪个版本的GTK +?
我需要确定在Ubuntu上安装了哪个版本的GTK +
人似乎没有帮助
这个build议会告诉你安装了哪个2.0版本。 不同的主版本会有不同的软件包名称,因为它们可以在系统上共存(为了支持使用旧版本构build的应用程序)。
即使对于通常只允许在系统上安装一个版本的开发文件,也可以在同一系统上安装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
$ dpkg -s libgtk2.0-0|grep '^Version'
得到GTK3版本:
dpkg -s libgtk-3-0|grep '^Version'
或者只是版本号
dpkg -s libgtk-3-0|grep '^Version' | cut -d' ' -f2-
你也可以编译下面的程序并在你的机器上运行它。
#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`
当你运行这个你会得到一些输出。 在我的旧embedded式设备上,我得到以下内容:
[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
你也可以打开synaptic并searchlibgtk,它会显示你正确的安装了lib。
我认为一个独立于发行版的方法是:
gtk-config --version
尝试:
dpkg-query -W libgtk-3-bin
为了使答案比Ubuntu更普遍(我有Redhat):
gtk通常安装在/ usr下,但可能在其他位置。 这应该在环境variables中可见。 检查
env | grep gtk
然后尝试find你的gtk文件的存储位置。 例如,使用locate
和grep。
locate gtk | grep /usr/lib
通过这种方式,我find了/usr/lib64/gtk-2.0
,它包含了包含许多.so库文件的子目录2.10.0
。 我的结论是,我有GTK +版本2.10。 这与Redhat上的rpm命令非常一致: rpm -qa | grep gtk2
rpm -qa | grep gtk2
,所以我认为我的结论是正确的。