Frage

ich brauche, um zu bestimmen, welche Version von GTK + auf Ubuntu installiert ist

Man scheint nicht zu helfen

War es hilfreich?

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.

erhalten
dpkg -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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top