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


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

El hombre no parece ayudar

Author: iain, 2008-09-24

10 answers

Esta sugerencia le dirá qué versión menor de 2.0 está instalada. Las diferentes versiones principales tendrán diferentes nombres de paquete porque pueden coexistir en el sistema (con el fin de soportar aplicaciones construidas 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.x y 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).

Así que en resumen no hay una respuesta simple a "qué versión de GTK está en el sistema". Pero...

Intenta algo como:

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

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

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

pkg-config --modversion gtk+

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

pkg-config --modversion gtk+-2.0

Le dirá qué versión de GTK 2.0. El viejo 1.la versión 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
 57
Author: Mark Baker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:02:53
$ dpkg -s libgtk2.0-0|grep '^Version'
 23
Author: Torsten Marek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-24 09:09:47

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-
 21
Author: Dr Casper Black,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-20 06:15:35

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 ( suponiendo que el archivo fuente anterior se llama versión.c):

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

Cuando ejecute esto obtendrá alguna salida. En mi antiguo dispositivo incrustado obtengo lo siguiente:

[root@n00E04B3730DF n2]# ./version 
2.10.4
[root@n00E04B3730DF n2]#
 7
Author: Chimera,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-06 15:33:14

Try,

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

O

dpkg -l libgtk2.0-0 libgtk-3-0
 4
Author: Максим Шатов,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-20 06:15:11

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

 3
Author: Luka Marinko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-06 13:21:02

Intenta:

 dpkg-query -W libgtk-3-bin
 2
Author: ThorSummoner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-25 22:43:20

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

gtk-config --version

 1
Author: Xqj37,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-24 10:28:45

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 son instalables en paralelo, puede tener ambas en su sistema, que es mi caso, por lo que el comando anterior 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 desea es la versión de los archivos de desarrollo, use pkg-config --modversion gtk+-3.0 por ejemplo para GTK+ 3. Para extender eso a las diferentes versiones principales de GTK+, con algunos sed magia, esto da:

pkg-config --list-all | sed -ne 's/\(gtk+-[0-9]*.0\).*/\1/p' | xargs pkg-config --modversion
 1
Author: liberforce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-05 17:07:45

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

Gtk normalmente se instala bajo /usr, pero posiblemente en otras ubicaciones. Esto debería ser visible en variables de entorno. Comprobar con

env | grep gtk

Luego trate de encontrar dónde se almacenan 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 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 gtk2, así que creo que mi conclusión es correcta.

 0
Author: Helge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-26 07:59:25