Wie finden Sie heraus, welche Version von GTK + unter Ubuntu installiert ist?


79

Ich muss feststellen, welche Version von GTK + unter Ubuntu installiert ist

Der Mensch scheint nicht zu helfen

Antworten:


71

Dieser Vorschlag zeigt Ihnen, welche Nebenversion von 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, bei denen normalerweise nur eine Version auf dem System verfügbar ist, 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 mit der Bezeichnung gtk-1.2 oder gtk-2.0).

Kurz gesagt, es gibt keine einfache Antwort auf die Frage, welche GTK-Version auf dem System vorhanden ist. Aber...

Versuchen Sie etwas wie:

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

um alle libgtk-Pakete aufzulisten, einschließlich der -dev-Pakete, die sich auf Ihrem System befinden. dpkg -llistet alle Pakete auf, die dpkg kennt, einschließlich solcher, die derzeit nicht installiert sind. Daher habe ich grep verwendet, um nur diejenigen aufzulisten, die installiert sind (Zeile beginnt mit i).

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

pkg-config --modversion gtk+

Hier erfahren Sie, welche Version der GTK 1.x-Entwicklungsdateien installiert ist

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 dasselbe tut. Ähnliches gilt für GTK + 3:

pkg-config --modversion gtk+-3.0

1
Irgendwelche Vorschläge für Windows? Wie finde ich die installierte GTK-Version unter Windows?
Avi Mehenwal

Das Programm pkg-config ist Teil der Windows-Installation. Das Schreiben von pkg-config --modversion gtk + -2.0 in die Befehlszeile sollte also funktionieren.
Pepan

1
Ziemlich sicher , dass die libgtk*in dpkg -l libgtk*hat in einfachen Anführungszeichen eingeschlossen werden ( dpkg -l 'libgtk*') Wildcard - Erweiterung auf der Shell - Ebene zu verhindern.
Sevko

Wenn es keine Glob-Übereinstimmungen gibt und es wahrscheinlich keine hier gibt, wird es nicht erweitert an den Befehl übergeben, sodass dies funktioniert. Aber es wäre in der Tat sicherer, es zu zitieren.
Mark Baker

25

GTK3-Version erhalten:

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

oder nur Versionsnummer

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

24

Sie können diesen Befehl verwenden:

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

1
Es gab kleinere Versionen von GTK + 2, aber GTK + 3 ist seit Jahren auf dem Markt und GTK + 4 ist unterwegs.
Liberforce

9

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 (vorausgesetzt, die obige Quelldatei heißt version.c):

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

Wenn Sie dies ausführen, erhalten Sie eine Ausgabe. Auf meinem alten eingebetteten Gerät wird Folgendes angezeigt:

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

2
Wenn ich kompiliere, wie Sie sagen, erhalte ich 2.24.27. Wenn ich --libs gtk+-3.0stattdessen mit kompiliere , erhalte ich 3.10.8. Dies scheint mir nur zu sagen, dass ich Entwicklungsdateien für beide habe, aber nicht die, die ich gerade benutze.
Tsbertalan

gtkv.c: 1: 21: schwerwiegender Fehler: gtk / gtk.h: Keine solche Datei oder kein solches Verzeichnis
niken

@tsbertalan "im Moment verwenden" hängt davon ab, mit welcher Version von GTK Ihre verschiedenen Apps verknüpft sind.
Chimäre


3

Sie können auch einfach synaptic öffnen und nach libgtk suchen. Es zeigt Ihnen genau, welche lib installiert ist.


3

Das ist nicht so schwierig.

Überprüfen Sie einfach die Version Ihres gtk + Toolkit-Dienstprogramms vom Terminal aus:

gtk-launch --version

2

Ich denke, ein verteilungsunabhängiger Weg ist:

gtk-config --version


2
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 sagte.
Mark Baker

2

Versuchen:

 dpkg-query -W libgtk-3-bin

Dies war die einzige Antwort , die sich anders verhalten , wenn ich substituiert 2für 3.
Tsbertalan

1

Dadurch erhalten Sie die Version der GTK + -Bibliotheken für GTK + 2 und GTK + 3.

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

Da Hauptversionen parallel installiert werden können, haben Sie möglicherweise beide auf Ihrem System, was mein Fall ist. Der obige Befehl gibt dies auf meinem Ubuntu Trusty-System zurück:

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

Dies bedeutet, dass ich GTK + 2.24.23 und 3.10.8 installiert habe.

Wenn Sie die Version der Entwicklungsdateien möchten, verwenden Sie diese pkg-config --modversion gtk+-3.0beispielsweise für GTK + 3. Um dies mit etwas Sed-Magie auf die verschiedenen Hauptversionen von GTK + zu erweitern, erhalten Sie Folgendes:

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

0

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

gtk wird normalerweise unter / usr installiert, möglicherweise jedoch an anderen Orten. Dies sollte in Umgebungsvariablen sichtbar sein. Überprüfen Sie mit

env | grep gtk

Versuchen Sie dann herauszufinden, wo Ihre GTK-Dateien gespeichert sind. Verwenden Sie zum Beispiel locateund grep.

locate gtk | grep /usr/lib

Auf diese Weise fand ich /usr/lib64/gtk-2.0, welches das Unterverzeichnis 2.10.0enthält, das viele .so-Bibliotheksdateien enthält. Mein Fazit ist, dass ich GTK + Version 2.10 habe. Dies steht ziemlich im Einklang mit dem Befehl rpm in Redhat: rpm -qa | grep gtk2Ich denke, meine Schlussfolgerung ist richtig.


0

Da apt-cache policyalle verfügbaren Übereinstimmungen aufgelistet werden, auch wenn sie nicht installiert sind, würde ich empfehlen, diesen Befehl für eine übersichtlichere Auswahlliste von GTK-bezogenen Paketen zu verwenden, die auf Ihrem System installiert sind:

apt list --installed libgtk*
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.