Domanda

Devo determinare quale versione di GTK + è installata su Ubuntu

L'uomo non sembra aiutare

È stato utile?

Soluzione

Questo suggerimento ti dirà quale versione minore di 2.0 è installata. Diverse versioni principali avranno nomi di pacchetti diversi perché possono coesistere sul sistema (al fine di supportare le applicazioni create con versioni precedenti).

Anche per i file di sviluppo, che normalmente ti permetterebbero di avere solo una versione sul sistema, puoi avere una versione di gtk 1.xe una versione di gtk 2.0 sullo stesso sistema (i file include sono nelle directory chiamate gtk -1.2 o gtk-2.0).

Quindi, in breve, non esiste una risposta semplice a " quale versione di GTK è presente nel sistema " ;. Ma ...

Prova qualcosa del tipo:

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

per elencare tutti i pacchetti libgtk, inclusi quelli -dev, che sono sul tuo sistema. dpkg -l elencherà tutti i pacchetti che dpkg conosce, compresi quelli che non sono attualmente installati, quindi ho usato grep per elencare solo quelli installati (la linea inizia con i).

In alternativa, e probabilmente meglio se è la versione delle intestazioni ecc. che ti interessa, usa pkg-config:

pkg-config --modversion gtk+

ti dirà quale versione dei file di sviluppo GTK 1.x è installata e

pkg-config --modversion gtk+-2.0

ti dirà quale versione di GTK 2.0. La vecchia versione 1.x ha anche il suo programma gtk-config che fa la stessa cosa. Allo stesso modo, per GTK + 3:

pkg-config --modversion gtk+-3.0

Altri suggerimenti

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

ottieni la versione GTK3:

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

o solo il numero di versione

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

Puoi anche compilare il seguente programma ed eseguirlo sul tuo computer.

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

compilare con (supponendo che il file sorgente sopra sia chiamato version.c):

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

Quando esegui questo, otterrai un output. Sul mio vecchio dispositivo incorporato ottengo quanto segue:

[root@n00E04B3730DF n2]# ./version 
2.10.4
[root@n00E04B3730DF n2]#

Prova,

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

o,

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

Puoi anche semplicemente aprire synaptic e cercare libgtk, ti ??mostrerà esattamente quale lib è installata.

Prova:

 dpkg-query -W libgtk-3-bin

Penso che un modo indipendente dalla distribuzione sia:

gtk-config --version

Verrà visualizzata la versione delle librerie GTK + per GTK + 2 e GTK + 3.

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

Poiché le versioni principali sono installabili in parallelo, potresti avere entrambe sul tuo sistema, che è il mio caso, quindi il comando sopra riportato lo restituisce sul mio 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

Ciò significa che ho installato GTK + 2.24.23 e 3.10.8.

Se quello che vuoi è la versione dei file di sviluppo, usa pkg-config --modversion gtk + -3.0 ad esempio per GTK + 3. Per estenderlo alle diverse versioni principali di GTK +, con un po 'di magia sed, questo dà:

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

Per rendere la risposta più generale di Ubuntu (ho Redhat):

gtk è di solito installato sotto / usr, ma probabilmente in altre posizioni. Questo dovrebbe essere visibile nelle variabili di ambiente. Verifica con

env | grep gtk

Quindi prova a trovare dove sono archiviati i tuoi file gtk. Ad esempio, utilizzare individuare e grep.

locate gtk | grep /usr/lib

In questo modo, ho trovato /usr/lib64/gtk-2.0 , che contiene la sottodirectory 2.10.0 , che contiene molti file di libreria .so. La mia conclusione è che ho gtk + versione 2.10. Questo è piuttosto coerente con il comando rpm su Redhat: rpm -qa | grep gtk2 , quindi penso che la mia conclusione sia corretta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top