it-swarm.com.de

Wie erfahren Sie, welche Version von GTK + auf Ubuntu installiert ist?

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

Der Mensch scheint nicht zu helfen

63
Craig Angus

Dieser Vorschlag sagt Ihnen, welche Nebenversion von 2.0 installiert ist. Unterschiedliche Hauptversionen haben unterschiedliche Paketnamen, da sie auf dem System vorhanden sein 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 vorhanden wäre, können Sie eine Version von gtk 1.x und eine Version von gtk 2.0 auf demselben System verwenden (die Include-Dateien befinden sich in Verzeichnissen, die gtk-1.2 oder GTK-2,0).

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

Versuchen Sie etwas wie:

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

um alle libgtk-Pakete, einschließlich der -dev-Pakete, auf Ihrem System aufzulisten. dpkg -l listet alle Pakete auf, über die dpkg informiert ist, einschließlich derer, die derzeit nicht installiert sind. Daher habe ich mit grep nur die Pakete aufgelistet, die installiert sind (Zeile beginnt mit i).

Alternativ und wahrscheinlich besser, wenn Sie sich für die Version der Header usw. interessieren, verwenden Sie pkg-config:

pkg-config --modversion gtk+

zeigt an, welche Version der 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 dasselbe tut. Ähnlich für GTK + 3:

pkg-config --modversion gtk+-3.0
57
Mark Baker
$ dpkg -s libgtk2.0-0|grep '^Version'
23
Torsten Marek

GTK3-Version erhalten:  

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

oder nur Versionsnummer

dpkg -s libgtk-3-0|grep '^Version' | cut -d' ' -f2-
21
Dr Casper Black

Sie können auch 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 Quelldatei heißt version.c):

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

Wenn Sie dies ausführen, erhalten Sie etwas Ausgabe. Auf meinem alten Embedded-Gerät bekomme ich Folgendes:

[[email protected] n2]# ./version 
2.10.4
[[email protected] n2]#
7
Chimera

Versuchen, 

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

oder, 

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

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

3
Luka Marinko

Versuchen:

 dpkg-query -W libgtk-3-bin
2
ThorSummoner

Ich denke, ein verteilungsunabhängiger Weg ist:

gtk-config --version

1
Xqj37

Dies wird die Version der GTK + -Bibliotheken für GTK + 2 und GTK + 3 erhalten. 

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

Da Hauptversionen parallel installiert werden können, haben Sie möglicherweise beides auf Ihrem System, was in meinem Fall der 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

Das heißt, ich habe GTK + 2.24.23 und 3.10.8 installiert.

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

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

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

gtk wird normalerweise unter/usr installiert, möglicherweise aber auch 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 beispielsweise locate und grep.

locate gtk | grep /usr/lib

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

0
Helge