Ich muss feststellen, welche Version von GTK + unter Ubuntu installiert ist
Der Mensch scheint nicht zu helfen
Ich muss feststellen, welche Version von GTK + unter Ubuntu installiert ist
Der Mensch scheint nicht zu helfen
Antworten:
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 -l
listet 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
libgtk*
in dpkg -l libgtk*
hat in einfachen Anführungszeichen eingeschlossen werden ( dpkg -l 'libgtk*'
) Wildcard - Erweiterung auf der Shell - Ebene zu verhindern.
GTK3-Version erhalten:
dpkg -s libgtk-3-0|grep '^Version'
oder nur Versionsnummer
dpkg -s libgtk-3-0|grep '^Version' | cut -d' ' -f2-
Sie können diesen Befehl verwenden:
$ dpkg -s libgtk2.0-0|grep '^Version'
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]#
--libs gtk+-3.0
stattdessen 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.
Versuchen,
apt-cache policy libgtk2.0-0 libgtk-3-0
oder,
dpkg -l libgtk2.0-0 libgtk-3-0
Sie können auch einfach synaptic öffnen und nach libgtk suchen. Es zeigt Ihnen genau, welche lib installiert ist.
Das ist nicht so schwierig.
Überprüfen Sie einfach die Version Ihres gtk + Toolkit-Dienstprogramms vom Terminal aus:
gtk-launch --version
Ich denke, ein verteilungsunabhängiger Weg ist:
gtk-config --version
Versuchen:
dpkg-query -W libgtk-3-bin
2
für 3
.
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.0
beispielsweise 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
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 locate
und grep.
locate gtk | grep /usr/lib
Auf diese Weise fand ich /usr/lib64/gtk-2.0
, welches das Unterverzeichnis 2.10.0
enthä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 gtk2
Ich denke, meine Schlussfolgerung ist richtig.
Da apt-cache policy
alle 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*