2008-09-24 60 views

Respuesta

54

This suggestion le dirá cuales versión menor del 2.0 está instalado. Las diferentes versiones principales tendrán diferentes nombres de paquete porque pueden coexistir en el sistema (para admitir aplicaciones creadas con versiones anteriores).

Incluso para los archivos de desarrollo, que normalmente solo le permiten tener una versión en el sistema, puede tener una versión de gtk 1.x y una versión de gtk 2.0 en el mismo sistema (los archivos incluidos se encuentran en directorios llamados gtk-1.2 o gtk-2.0).

En resumen, no hay una respuesta simple para "qué versión de GTK está en el sistema". Pero ...

intentar algo como:

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

para listar todos los paquetes libgtk, incluidos los -dev, que son en su sistema. dpkg -l listará todos los paquetes que dpkg conoce, incluso aquellos que no están instalados actualmente, así que he usado grep para enumerar solo los que están instalados (la línea comienza con i).

alternativa, y probablemente mejor si es la versión de las cabeceras, etc que le interesan, el uso pkg-config:

pkg-config --modversion gtk+ 

le dirá qué versión de archivos de desarrollo 1.x GTK están instalados y

pkg-config --modversion gtk+-2.0 

le dirá qué versión de GTK 2.0. La antigua versión 1.x también tiene su propio programa gtk-config que hace lo mismo. Del mismo modo, para GTK + 3:

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

¿Alguna sugerencia para Windows? ¿Cómo encontrar la versión de gtk instalada en Windows? –

+0

El programa pkg-config es parte de la instalación de Windows. Así que escribir pkg-config --modversion gtk + -2.0 en la línea de comando debería funcionar. – pepan

+0

Bastante seguro que 'libgtk *' en 'dpkg -l libgtk *' tiene que estar entre comillas simples ('dpkg -l 'libgtk *'') para evitar la expansión de comodines en el nivel del shell. – sevko

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

Este estaba obteniendo versiones menores de GTK + 2, pero GTK + 3 ha estado fuera por años y GTK + 4 en camino. – liberforce

1

creo una manera independiente de la distribución es:

gtk-config --version

+1

Mientras que gtk-config es independiente de la distribución, solo funciona para GTK 1.x. La forma correcta para las versiones más nuevas es usar pkg-config, como dije en mi respuesta. –

3

Usted puede también sináptica acaba de abrir y buscar libgtk, se le mostrará exactamente qué lib es instalado

20

obtener la versión GTK3:

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

o simplemente número de versión

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

No requiere instalación de 'pkg-config', bueno. –

0

Para hacer la respuesta más general que Ubuntu (tengo RedHat):

GTK se suele instalar bajo/usr, pero posiblemente en otros lugares. Esto debería ser visible en las variables de entorno. Verifique con

env | grep gtk 

Luego trate de encontrar dónde están almacenados sus archivos gtk. Por ejemplo, use locate y grep.

locate gtk | grep /usr/lib 

De esta manera, encontré /usr/lib64/gtk-2.0, que contiene el subdirectorio 2.10.0, que contiene muchos .so archivos de la biblioteca. Mi conclusión es que tengo gtk + versión 2.10. Esto es bastante consistente con el comando rpm en Redhat: rpm -qa | grep gtk2, por lo que creo que mi conclusión es correcta.

6

También puede simplemente compilar el siguiente programa y ejecutarlo en su máquina.

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

compilar con (suponiendo por encima de archivo de origen se llama version.c):

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

Al ejecutar esto le aparecer algún. En mi dispositivo integrado de edad me sale el siguiente:

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

Si compilo como dices, obtengo 2.24.27. Si compilo con '--libs gtk + -3.0' en su lugar, obtengo 3.10.8. Esto parece indicarme que tengo archivos de desarrollo para ambos, pero no los uso en este momento. – tsbertalan

+0

gtkv.c: 1: 21: error fatal: gtk/gtk.h: Ningún archivo o directorio – sloven

+0

@tsbertalan "usar en este momento" depende de la versión de GTK con la que se vinculen sus diversas aplicaciones. – Chimera

4

intento,

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

o,

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

Probar:

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

Esta fue la única respuesta que se comportó de manera diferente cuando sustituí '2' por' 3'. – tsbertalan

0

Esto hará que la versión de las bibliotecas GTK + para GTK + 2 y GTK + 3.

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

Como las versiones importantes son paralelas instalable, es posible que tenga tanto en su sistema, que es mi caso, por lo que los anteriores comando devuelve esto en mi sistema de confianza 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 

Esto significa que tengo GTK + 2.24.23 y 3.10.8 instalados.

Si lo que quiere es la versión de los archivos de desarrollo, el uso pkg-config --modversion gtk+-3.0 por ejemplo para GTK + 3. Para extender el proceso a las diferentes versiones principales de GTK +, con un poco de magia de sed, esto da:

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