2008-09-24 15 views

Antwort

54

This suggestion wird Ihnen sagen, welche kleinere Version installiert, welche Version von GTK + bestimmen 2.0 installiert ist. Verschiedene Hauptversionen haben unterschiedliche Paketnamen, da sie auf dem System nebeneinander existieren können (um Anwendungen zu unterstützen, die mit älteren Versionen erstellt wurden).

Selbst für Entwicklungsdateien, die normalerweise nur eine Version auf dem System zulassen, können Sie eine Version von gtk 1.x und eine Version von gtk 2.0 auf demselben System haben (die Include-Dateien befinden sich in Verzeichnissen) gtk-1.2 oder gtk-2.0).

Kurz gesagt gibt es keine einfache Antwort auf "welche Version von GTK ist auf dem System". Aber ...

Versuchen Sie so etwas wie:

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

zur Liste alle libgtk Pakete, einschließlich -dev diejenigen, die auf Ihrem System sind. dpkg -l listet alle Pakete auf, die dpkg kennt, einschließlich derer, die derzeit nicht installiert sind, also habe ich grep verwendet, um nur diejenigen aufzulisten, die installiert sind (Zeile beginnt mit i).

Alternativ und wahrscheinlich besser, wenn es die Version der Header ist usw., die Sie interessiert sind, verwenden Sie pkg-config:

pkg-config --modversion gtk+ 

wird Ihnen sagen, welche Version von GTK 1.x Entwicklungsdateien installiert sind und

pkg-config --modversion gtk+-2.0 

wird Ihnen sagen, welche Version von GTK 2.0. Die alte 1.x-Version hat auch ein eigenes gtk-config-Programm, das das gleiche tut. In ähnlicher Weise für GTK + 3:

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

Irgendwelche Vorschläge für Windows? Wie installiere ich gtk-Version unter Windows? –

+0

Das Programm pkg-config ist Teil der Windows-Installation. Also sollte pkg-config --modversion gtk + -2.0 in der Kommandozeile geschrieben werden. – pepan

+0

Ziemlich sicher, dass 'libgtk *' in 'dpkg -l libgtk *' in einfache Anführungszeichen ('dpkg -l 'libgtk *'') eingeschlossen sein muss, um eine Platzhaltererweiterung auf der Shell-Ebene zu verhindern. – sevko

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

Diese bekam kleinere Versionen von GTK + 2, aber GTK + 3 ist seit Jahren draußen und GTK + 4 ist auf dem Weg. – liberforce

1

Ich denke, eine Verteilung unabhängig ist:

gtk-config --version

+1

Während gtk-config verteilungsunabhängig ist, funktioniert es nur für GTK 1.x. Der richtige Weg für neuere Versionen ist die Verwendung von pkg-config, wie ich in meiner Antwort gesagt habe. –

3

Sie können auch nur offene synaptischen und die Suche nach libgtk, wird es Ihnen genau zeigen, welche lib Eingerichtet.

20

get GTK3 Version:

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

oder Versionsnummer

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

Keine Installation von 'pkg-config' nötig, gut. –

0

Um die Antwort allgemeiner als Ubuntu zu machen (ich habe Redhat):

gtk in der Regel installiert ist unter/usr, aber möglicherweise an anderen Orten. Dies sollte in Umgebungsvariablen sichtbar sein. Überprüfen Sie mit

env | grep gtk 

Dann versuchen Sie zu finden, wo Ihre GTK-Dateien gespeichert sind. Verwenden Sie beispielsweise locate und grep.

locate gtk | grep /usr/lib 

Auf diese Weise fand ich /usr/lib64/gtk-2.0, die das Unterverzeichnis enthält 2.10.0, die viele .so Bibliotheksdateien enthält. Meine Schlussfolgerung ist, dass ich gtk + Version 2.10 habe. Dies ist ziemlich konsistent mit dem Befehl rpm auf Redhat: rpm -qa | grep gtk2, also denke ich, meine Schlussfolgerung ist richtig.

6

Sie können auch einfach das folgende Programm kompilieren und auf Ihrem Computer ausführen.

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

kompilieren mit (oben Quelldatei unter der Annahme version.c benannt ist):

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

Wenn Sie dies führen Sie eine Ausgabe erhalten wird. Auf meinem alten Embedded-Gerät erhalte ich folgendes:

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

Wenn ich kompiliere wie du sagst, bekomme ich 2.24.27. Wenn ich stattdessen mit --libs gtk + -3.0 kompiliere, bekomme ich 3.10.8. Das scheint mir nur zu sagen, dass ich Entwicklungsdateien für beide habe, aber nicht für die, die ich gerade benutze. – tsbertalan

+0

gtkv.c: 1: 21: fataler Fehler: gtk/gtk.h: Keine solche Datei oder Verzeichnis – sloven

+0

@tsbertalan "im Moment verwenden" hängt davon ab, welche Version von GTK Ihre verschiedenen Apps sind verknüpft. – Chimera

4

Versuchen,

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

oder

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

Versuchen:

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

Dies war die einzige Antwort, die sich anders verhielt als ich '2' für' 3' einsetzte. – tsbertalan

0

Diese die Version erhalten von die GTK + -Bibliotheken für GTK + 2 und GTK + 3.

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

Als Hauptversionen sind parallel installiert, können Sie sowohl auf Ihrem System haben, das meinen Fall ist, so dass die obige Befehl gibt diese auf meinem Ubuntu Trusty System:

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 

Das bedeutet, ich habe GTK + 2.24.23 und 3.10.8 installiert.

Wenn das, was Sie wollen, ist die Version der Entwicklungsdateien verwenden pkg-config --modversion gtk+-3.0 zum Beispiel für GTK + 3. Um das zu den verschiedenen Hauptversionen von GTK +, mit einiger sed Magie zu erweitern, ergibt dies:

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