Wie finden Sie auf Ubuntu installiert, welche Version von GTK + out?
Frage
ich brauche, um zu bestimmen, welche Version von GTK + auf Ubuntu installiert ist
Man scheint nicht zu helfen
Lösung
Dieser Vorschlag wird Ihnen sagen, welche kleinere Version 2.0 installiert ist. Verschiedene Hauptversionen werden verschiedene Paketnamen haben, weil sie auf dem System (um Anwendungen mit älteren Versionen gebaut zu unterstützen) koexistieren kann.
Auch für Entwicklungsdateien, die in der Regel nur lassen würden Sie eine Version auf dem System haben, können Sie eine Version von GTK 1.x haben und eine Version von GTK 2.0 auf demselben System (die Include-Dateien werden in Verzeichnissen mit dem Namen gtk -1.2 oder gtk-2.0).
Also kurz gesagt es keine einfache Antwort ist, „welche Version von GTK auf dem System ist“. Aber ...
Versuchen Sie so etwas wie:
dpkg -l libgtk* | grep -e '^i' | grep -e 'libgtk-*[0-9]'
alle libgtk Pakete aufzulisten, einschließlich -dev diejenigen, die auf Ihrem System sind. dpkg -l
werden alle Pakete aufzulisten, die dpkg kennt, darunter auch solche, die derzeit nicht installiert sind, so habe ich verwendet grep nur diejenigen aufzuzählen, die installiert werden (Zeile beginnt mit i).
Alternativ und wahrscheinlich besser, wenn es die Version der Header etc., 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 die gleiche Sache tut. In ähnlicher Weise für GTK + 3:
pkg-config --modversion gtk+-3.0
Andere Tipps
$ dpkg -s libgtk2.0-0|grep '^Version'
erhalten GTK3 Version:
dpkg -s libgtk-3-0|grep '^Version'
oder Versionsnummer
dpkg -s libgtk-3-0|grep '^Version' | cut -d' ' -f2-
Sie können auch kompilieren nur das folgende Programm und führen Sie es auf Ihrem 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);
}
kompilieren mit (oben Quelldatei unter der Annahme, heißt version.c):
gcc version.c -o version `pkg-config --cflags --libs gtk+-2.0`
Wenn Sie dies ausführen Sie eine Ausgabe erhalten. Auf meinem alten Embedded-Gerät erhalte ich folgende:
[root@n00E04B3730DF n2]# ./version
2.10.4
[root@n00E04B3730DF n2]#
Versuchen Sie,
apt-cache policy libgtk2.0-0 libgtk-3-0
oder
dpkg -l libgtk2.0-0 libgtk-3-0
Sie können auch nur offene synaptischen und die Suche nach libgtk, wird es zeigen Ihnen genau, welche lib installiert ist.
Versuchen:
dpkg-query -W libgtk-3-bin
Ich denke, eine Verteilung unabhängig ist:
gtk-config --version
Dies wird die Version der GTK + -Bibliotheken für GTK + 2 und GTK + 3.
erhaltendpkg -l | egrep "libgtk(2.0-0|-3-0)"
Als Hauptversionen parallel installierbar sind, haben Sie sowohl auf Ihrem System, das mein 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 ist.
Wenn das, was Sie wollen, ist die Version der Entwicklungsdateien, pkg-config --modversion gtk+-3.0
zum Beispiel verwendet für GTK + 3. Um das zu erweitern, um die verschiedenen Hauptversionen von GTK +, mit einiger sed Magie, ergibt dies:
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 ist in der Regel unter / usr installiert, aber möglicherweise auch in anderen Orten. Dies sollte in Umgebungsvariablen sichtbar sein. Prüfen Sie mit
env | grep gtk
Dann versuchen Sie zu finden, wo Sie 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
, die das Unterverzeichnis 2.10.0
enthält, die viele .so Bibliotheksdateien enthält. Meine Schlussfolgerung ist, dass ich GTK + Version 2.10. Dies ist eher im Einklang mit dem Befehl rpm auf Redhat. rpm -qa | grep gtk2
, so dass ich glaube, meine Schlussfolgerung richtig ist