Как узнать, какая версия GTK + установлена в Ubuntu?

63

Мне нужно определить, какая версия GTK + установлена ​​на Ubuntu

Человек, похоже, не помогает

Теги:
gtk
gnome

10 ответов

57
Лучший ответ

Это предложение сообщит вам, какая из младших версий 2.0 установлена. Различные основные версии будут иметь разные имена пакетов, поскольку они могут сосуществовать в системе (для поддержки приложений, построенных с более старыми версиями).

Даже для файлов разработки, которые обычно позволяли бы вам иметь одну версию в системе, вы можете иметь версию gtk 1.x и версию gtk 2.0 в той же системе (файлы include в каталогах, называемые gtk -1.2 или gtk-2.0).

Короче говоря, нет простого ответа на вопрос "какая версия GTK находится в системе". Но...

Попробуйте что-то вроде:

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

чтобы перечислить все пакеты libgtk, включая -dev, которые находятся в вашей системе. dpkg -l перечисляет все пакеты, о которых знает dpkg, в том числе те, которые в настоящее время не установлены, поэтому я использовал grep для отображения только тех, которые установлены (строка начинается с i).

В качестве альтернативы и, вероятно, лучше, если вам нужна версия заголовков и т.д., используйте pkg-config:

pkg-config --modversion gtk+

расскажет вам, какая версия файлов разработки GTK 1.x установлена, и

pkg-config --modversion gtk+-2.0

расскажет вам, какая версия GTK 2.0. Старая версия 1.x также имеет собственную программу gtk-config, которая делает то же самое. Аналогично, для GTK + 3:

pkg-config --modversion gtk+-3.0
  • 1
    Любое предложение для окон? как найти установленную версию GTK на Windows?
  • 0
    Программа pkg-config является частью установки Windows. Поэтому запись pkg-config --modversion gtk + -2.0 в командной строке должна работать.
Показать ещё 2 комментария
22
$ dpkg -s libgtk2.0-0|grep '^Version'
  • 0
    Это получило второстепенные версии GTK + 2, но GTK + 3 выпускается уже много лет, а GTK + 4 уже в пути.
20

получить версию GTK3:

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

или только номер версии

dpkg -s libgtk-3-0|grep '^Version' | cut -d' ' -f2-
  • 0
    Не требует установки pkg-config , хорошо.
7

Вы также можете просто скомпилировать следующую программу и запустить ее на своем компьютере.

#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);
}

скомпилировать (при условии, что исходный файл имеет имя version.c):

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

Когда вы запустите это, вы получите некоторый результат. На моем старом встроенном устройстве я получаю следующее:

[root@n00E04B3730DF n2]# ./version 
2.10.4
[root@n00E04B3730DF n2]#
  • 2
    Если я собираю, как вы говорите, я получаю 2.24.27. Если я скомпилирую с --libs gtk+-3.0 , я получу 3.10.8. Это просто говорит мне, что у меня есть файлы для разработки обоих, но не те, которые я использую в данный момент.
  • 0
    gtkv.c: 1: 21: фатальная ошибка: gtk / gtk.h: нет такого файла или каталога
Показать ещё 1 комментарий
4

Попробуйте,

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

или,

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

Вы также можете просто открыть synaptic и найти libgtk, он покажет вам, в какой именно lib установлен.

2

Try:

 dpkg-query -W libgtk-3-bin
  • 0
    Это был единственный ответ, который вел себя иначе, когда я заменил 2 на 3 .
1

Это получит версию библиотек GTK + для GTK + 2 и GTK + 3.

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

Поскольку основные версии устанавливаются параллельно, у вас могут быть как в вашей системе, это мой случай, поэтому приведенная выше команда возвращает это в моей системе Ubuntu Trusty:

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

Это означает, что у меня установлены GTK + 2.24.23 и 3.10.8.

Если вам нужна версия файлов разработки, используйте pkg-config --modversion gtk+-3.0, например, для GTK + 3. Чтобы распространить это на различные основные версии GTK +, с некоторой магией sed, это дает:

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

Я думаю, что независимый от распределения способ:

gtk-config --version

  • 2
    Хотя gtk-config не зависит от дистрибутива, он работает только для GTK 1.x. Правильный способ для более новых версий - использовать pkg-config, как я уже сказал в своем ответе.
0

Чтобы сделать ответ более общим, чем Ubuntu (у меня есть Redhat):

gtk обычно устанавливается под /usr, но, возможно, в других местах. Это должно быть видимым в переменных среды. Проверьте с помощью

env | grep gtk

Затем попробуйте найти, где хранятся ваши файлы gtk. Например, используйте locate и grep.

locate gtk | grep /usr/lib

Таким образом, я нашел /usr/lib64/gtk-2.0, который содержит подкаталог 2.10.0, который содержит много файлов библиотеки .so. Я пришел к выводу, что у меня есть gtk + version 2.10. Это довольно согласуется с командой rpm на Redhat: rpm -qa | grep gtk2, поэтому я считаю, что мой вывод прав.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню