¿Cómo averiguas qué versión de GTK + está instalada en Ubuntu?

79

Necesito determinar qué versión de GTK + está instalada en Ubuntu

El hombre no parece ayudar

Craig Angus
fuente

Respuestas:

72

Esta sugerencia le dirá qué versión secundaria de 2.0 está instalada. Las diferentes versiones principales tendrán diferentes nombres de paquetes porque pueden coexistir en el sistema (para admitir aplicaciones creadas con versiones anteriores).

Incluso para los archivos de desarrollo, que normalmente solo le permitirían tener una versión en el sistema, puede tener una versión de gtk 1.xy una versión de gtk 2.0 en el mismo sistema (los archivos de inclusión están en directorios llamados gtk-1.2 o gtk-2.0).

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

Prueba algo como:

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

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

Alternativamente, y probablemente mejor si es la versión de los encabezados, etc., lo que le interesa, use pkg-config:

pkg-config --modversion gtk+

le dirá qué versión de los archivos de desarrollo GTK 1.x 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
Mark Baker
fuente
1
¿Alguna sugerencia para windows? ¿Cómo encontrar la versión GTK instalada en Windows?
Avi Mehenwal
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
1
Bastante seguro de que libgtk*en dpkg -l libgtk*ha de estar entre comillas simples ( dpkg -l 'libgtk*') para evitar la expansión de comodines en el nivel de la cáscara.
sevko
Si no hay coincidencias globales, y probablemente no las hay aquí, se pasará al comando sin expandir, por lo que esto funcionará. Pero de hecho sería más seguro citarlo.
Mark Baker
25

obtener la versión GTK3:

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

o solo el número de versión

dpkg -s libgtk-3-0|grep '^Version' | cut -d' ' -f2-
Dr. Casper Negro
fuente
24

Puedes usar este comando:

$ dpkg -s libgtk2.0-0|grep '^Version'
Torsten Marek
fuente
1
Esto estaba obteniendo versiones menores de GTK + 2, pero GTK + 3 ha estado disponible durante años y GTK + 4 está en camino.
liberforce
9

También puede 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 (asumiendo que el archivo fuente anterior se llama version.c):

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

Cuando ejecute esto obtendrá algunos resultados. En mi antiguo dispositivo integrado obtengo lo siguiente:

[root@n00E04B3730DF n2]# ./version 
2.10.4
[root@n00E04B3730DF n2]#
Quimera
fuente
2
Si compilo como usted dice, obtengo 2.24.27. Si compilo con en su --libs gtk+-3.0lugar, obtengo 3.10.8. Esto solo parece indicarme que tengo archivos de desarrollo para ambos, pero no los que estoy usando en este momento.
tsbertalan
gtkv.c: 1:21: error fatal: gtk / gtk.h: no existe tal archivo o directorio
niken
@tsbertalan "usar en este momento" depende de la versión de GTK a la que están vinculadas sus diversas aplicaciones.
Quimera
5

Tratar,

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

o,

dpkg -l libgtk2.0-0 libgtk-3-0
Максим Шатов
fuente
3

También puede abrir synaptic y buscar libgtk, le mostrará exactamente qué lib está instalada.

Luka Marinko
fuente
3

No es tan difícil.

Simplemente verifique la versión de las utilidades de su gtk + toolkit desde la terminal:

gtk-launch --version
superviviente303
fuente
2

Creo que una forma independiente de la distribución es:

gtk-config --version

Xqj37
fuente
2
Si bien 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.
Mark Baker
2

Tratar:

 dpkg-query -W libgtk-3-bin
ThorInvocador
fuente
Esta fue la única respuesta que se comportó de manera diferente cuando sustituí 2para 3.
tsbertalan
1

Esto obtendrá 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 principales se pueden instalar en paralelo, es posible que tenga ambas en su sistema, que es mi caso, por lo que el comando anterior devuelve esto en mi sistema 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

Esto significa que tengo GTK + 2.24.23 y 3.10.8 instalados.

Si lo que quieres es la versión de los archivos de desarrollo, usa pkg-config --modversion gtk+-3.0por ejemplo para GTK + 3. Para extender eso a las diferentes versiones principales de GTK +, con algo de magia sed, esto da:

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

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

gtk generalmente se instala en / usr, pero posiblemente en otras ubicaciones. Esto debería ser visible en las variables de entorno. Verifícalo con

env | grep gtk

Luego, intente encontrar dónde se almacenan sus archivos gtk. Por ejemplo, use locatey 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 archivos de biblioteca .so. Mi conclusión es que tengo gtk + versión 2.10. Esto es bastante consistente con el comando rpm en Redhat:, rpm -qa | grep gtk2así que creo que mi conclusión es correcta.

Helge
fuente
0

Debido a apt-cache policyque enumerará todas las coincidencias disponibles, incluso si no están instaladas, sugeriría usar este comando para una lista más manejable de paquetes relacionados con GTK instalados en su sistema:

apt list --installed libgtk*
stragu
fuente