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


Ответы:


72

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

Даже для файлов разработки, которые обычно позволяют иметь только одну версию в системе, вы можете иметь версию gtk 1.x и версию gtk 2.0 в одной системе (включаемые файлы находятся в каталогах, называемых 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?
Ави Мехенвал

Программа pkg-config является частью установки Windows. Поэтому запись pkg-config --modversion gtk + -2.0 в командной строке должна работать.
pepan

1
Вполне уверен, что libgtk*in dpkg -l libgtk*нужно заключить в одинарные кавычки ( dpkg -l 'libgtk*'), чтобы предотвратить расширение подстановочных знаков на уровне оболочки.
sevko

Если совпадений glob нет и, вероятно, их здесь нет, то он будет передан команде без расширения, так что это сработает. Но процитировать его было бы действительно безопаснее.
Марк Бейкер


24

Вы можете использовать эту команду:

$ dpkg -s libgtk2.0-0|grep '^Version'

1
Это были второстепенные версии GTK + 2, но GTK + 3 отсутствовал уже много лет, и GTK + 4 готовится.
liberforce 05

9

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

#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. Это просто говорит мне, что у меня есть файлы разработки для обоих, но не те, которые я использую в данный момент.
tsbertalan 03

gtkv.c: 1: 21: фатальная ошибка: gtk / gtk.h: нет такого файла или каталога
niken

@tsbertalan "используется в данный момент" зависит от того, с какой версией GTK связаны ваши различные приложения.
Chimera


3

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



2

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

gtk-config --version


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


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

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 + версии 2.10. Это скорее согласуется с командой rpm в Redhat : rpm -qa | grep gtk2, так что я думаю, что мой вывод верен.


0

Поскольку apt-cache policyбудут перечислены все доступные совпадения, даже если они не установлены, я бы предложил использовать эту команду для более управляемого короткого списка пакетов, связанных с GTK, установленных в вашей системе:

apt list --installed libgtk*
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.