簡體   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