2008-09-24 18 views

Répondre

54

This suggestion vous dira quelle version mineure de 2.0 est installé. Différentes versions majeures auront des noms de paquets différents car ils peuvent coexister sur le système (afin de supporter les applications construites avec des versions plus anciennes).

Même pour les fichiers de développement, qui normalement ne vous permettraient qu'une version sur le système, vous pouvez avoir une version de gtk 1.x et une version de gtk 2.0 sur le même système (les fichiers include sont dans des répertoires appelés gtk-1.2 ou gtk-2.0). En bref, il n'y a pas de réponse simple à "quelle version de GTK est sur le système". Mais ...

Essayez quelque chose comme:

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

à la liste tous les forfaits libgtk, y compris les -dev, qui sont sur votre système. dpkg -l listera tous les paquets que dpkg connait, y compris ceux qui ne sont pas actuellement installés, donc j'ai utilisé grep pour lister seulement ceux qui sont installés (la ligne commence par i).

Sinon, et probablement mieux si elle est la version des en-têtes, etc que vous êtes intéressé par, l'utilisation pkg-config:

pkg-config --modversion gtk+ 

vous dira quelle version de fichiers de développement 1.x GTK sont installés , et

pkg-config --modversion gtk+-2.0 

vous dira quelle version de GTK 2.0. L'ancienne version 1.x possède également son propre programme gtk-config qui fait la même chose. De même, pour GTK + 3:

pkg-config --modversion gtk+-3.0 
+1

Une suggestion pour Windows? comment trouver la version gtk installée sur Windows? –

+0

Le programme pkg-config fait partie de l'installation de Windows. Donc écrire pkg-config --modversion gtk + -2.0 dans la ligne de commande devrait fonctionner. – pepan

+0

Assez sûr que 'libgtk *' dans 'dpkg -l libgtk *' doit être entouré de guillemets simples ('dpkg -l 'libgtk *' ') pour empêcher l'expansion de caractères génériques au niveau du shell. – sevko

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

Cette recevait des versions mineures de GTK + 2, mais GTK + 3 est sorti depuis des années et GTK + 4 en cours de route. – liberforce

1

Je pense que d'une manière de distribution indépendante est:

gtk-config --version

+1

Alors que gtk-config est indépendant de la distribution, il ne fonctionne que pour GTK 1.x. La bonne façon pour les nouvelles versions est d'utiliser pkg-config, comme je l'ai dit dans ma réponse. –

3

Vous pouvez également synaptique il suffit d'ouvrir et rechercher libgtk, il va vous montrer exactement ce qui lib est installée.

20

get version GTK3:

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

ou tout simplement le numéro de version

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

Ne nécessitant pas l'installation de 'pkg-config', bon. –

0

Pour rendre la réponse plus générale que Ubuntu (je Redhat):

gtk est généralement installé sous/usr, mais éventuellement dans d'autres endroits. Cela devrait être visible dans les variables d'environnement. Vérifiez avec

env | grep gtk 

Ensuite, essayez de trouver où vos fichiers gtk sont stockés. Par exemple, utilisez locate et grep.

locate gtk | grep /usr/lib 

De cette façon, je trouve /usr/lib64/gtk-2.0, qui contient le sous-répertoire 2.10.0, qui contient de nombreux fichiers .so bibliothèque. Ma conclusion est que j'ai gtk + version 2.10. C'est plutôt cohérent avec la commande rpm sur Redhat: rpm -qa | grep gtk2, donc je pense que ma conclusion est juste.

6

Vous pouvez également simplement compiler le programme suivant et l'exécuter sur votre machine.

#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); 
} 

compiler avec (en supposant ci-dessus fichier source est nommé version.c):

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

Lorsque vous exécutez cela, vous obtiendrez des messages. Sur mon ancien appareil embarqué, je reçois le texte suivant:

[[email protected] n2]# ./version 
2.10.4 
[[email protected] n2]# 
+1

Si je compile comme vous le dites, je reçois 2.24.27. Si je compile avec '--libs gtk + -3.0' à la place, j'obtiens 3.10.8. Cela semble juste me dire que j'ai des fichiers de développement pour les deux, mais pas ce que j'utilise pour le moment. – tsbertalan

+0

gtkv.c: 1: 21: erreur fatale: gtk/gtk.h: Aucun fichier ou répertoire – sloven

+0

@tsbertalan "en cours d'utilisation" dépend de la version de GTK avec laquelle vos différentes applications sont liées. – Chimera

4

Essayez,

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

ou,

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

Essayez:

dpkg-query -W libgtk-3-bin 
+0

C'était la seule réponse qui se comportait différemment quand j'ai substitué '2' à' 3'. – tsbertalan

0

Cela obtenir la version de les bibliothèques GTK + pour GTK + 2 et GTK + 3.

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

Comme les versions principales sont parallèles installable, vous pouvez avoir à la fois sur votre système, ce qui est mon cas, de sorte que la commande retourne au-dessus sur mon système Trusty Ubuntu:

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 

Cela signifie que j'ai GTK + 2.24.23 et 3.10.8 installés.

Si ce que vous voulez est la version des fichiers de développement, utilisez pkg-config --modversion gtk+-3.0 par exemple pour GTK + 3. Pour étendre cela aux différentes versions majeures de GTK +, avec un peu de magie sed, cela donne:

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