Je dois déterminer quelle version de GTK + est installée sur Ubuntu
L'homme ne semble pas aider
Cette suggestion vous dira quelle version mineure de 2.0 est installée. Les différentes versions principales auront des noms de paquetages différents car elles peuvent coexister sur le système (afin de prendre en charge les applications construites avec des versions plus anciennes).
Même pour les fichiers de développement, qui ne vous permettraient normalement que d'avoir 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 gtk-2.0).
En bref, il n’ya pas de réponse simple à "quelle version de GTK se trouve sur le système". Mais...
Essayez quelque chose comme:
dpkg -l libgtk* | grep -e '^i' | grep -e 'libgtk-*[0-9]'
pour lister tous les paquets libgtk, y compris ceux -dev, qui sont sur votre système. dpkg -l
liste tous les paquets connus de dpkg, y compris ceux qui ne sont pas installés actuellement. J'ai donc utilisé grep pour ne répertorier que ceux installés (la ligne commence par i).
Sinon, et probablement mieux si c'est la version des en-têtes, etc. qui vous intéresse, utilisez pkg-config:
pkg-config --modversion gtk+
vous indiquera quelle version des fichiers de développement de GTK 1.x sont installés, et
pkg-config --modversion gtk+-2.0
vous dira quelle version de GTK 2.0. L'ancienne version 1.x a également son propre programme gtk-config qui fait la même chose. De même, pour GTK + 3:
pkg-config --modversion gtk+-3.0
$ dpkg -s libgtk2.0-0|grep '^Version'
récupère la version GTK3:
dpkg -s libgtk-3-0|grep '^Version'
ou juste le numéro de version
dpkg -s libgtk-3-0|grep '^Version' | cut -d' ' -f2-
Vous pouvez également simplement compiler le programme suivant et l'exécuter sur votre ordinateur.
#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 que le fichier source ci-dessus s'appelle version.c):
gcc version.c -o version `pkg-config --cflags --libs gtk+-2.0`
Lorsque vous exécutez ceci, vous obtiendrez une sortie. Sur mon ancien appareil intégré, je reçois les informations suivantes:
[root@n00E04B3730DF n2]# ./version
2.10.4
[root@n00E04B3730DF n2]#
Essayer,
apt-cache policy libgtk2.0-0 libgtk-3-0
ou,
dpkg -l libgtk2.0-0 libgtk-3-0
Vous pouvez aussi simplement ouvrir synaptic et rechercher libgtk, il vous montrera exactement quelle lib est installée.
Essayer:
dpkg-query -W libgtk-3-bin
Je pense qu'une manière indépendante de la distribution est:
gtk-config --version
Cela obtiendra la version des bibliothèques GTK + pour GTK + 2 et GTK + 3.
dpkg -l | egrep "libgtk(2.0-0|-3-0)"
Comme les versions principales sont installables en parallèle, vous pouvez avoir les deux sur votre système, ce qui est mon cas. La commande ci-dessus renvoie donc ceci sur mon système 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
Cela signifie que GTK + 2.24.23 et 3.10.8 sont 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 principales 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
Pour rendre la réponse plus générale que Ubuntu (j'ai Redhat):
gtk est généralement installé sous/usr, mais peut-être ailleurs. Cela devrait être visible dans les variables d'environnement. Vérifier avec
env | grep gtk
Puis essayez de trouver où sont stockés vos fichiers gtk. Par exemple, utilisez locate
et grep.
locate gtk | grep /usr/lib
De cette manière, j'ai trouvé /usr/lib64/gtk-2.0
, qui contient le sous-répertoire 2.10.0
, qui contient de nombreux fichiers de bibliothèque .so. Ma conclusion est que j'ai gtk + version 2.10. Ceci est assez cohérent avec la commande rpm sur Redhat: rpm -qa | grep gtk2
, donc je pense que ma conclusion est correcte.