10 ответов:
предложение расскажет вам, какая минорная версия 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.файлы разработки установлены, и
pkg-config --modversion gtk+-2.0расскажу вам, какая версия GTK 2.0. Старый 1.x версия также имеет свою собственную программу gtk-config, которая делает то же самое. Аналогично, для GTK+ 3:
pkg-config --modversion gtk+-3.0
получить версию GTK3:
dpkg -s libgtk-3-0|grep '^Version'или просто номер версии
dpkg -s libgtk-3-0|grep '^Version' | cut -d' ' -f2-
вы также могли бы просто скомпилировать следующую программу и запустить ее на компьютере.
#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.в):
gcc version.c -o version `pkg-config --cflags --libs gtk+-2.0`при запуске этого вы получите некий результат. На моем старом встроенном устройстве я получаю следующее:
[root@n00E04B3730DF n2]# ./version 2.10.4 [root@n00E04B3730DF n2]#
вы также можете просто открыть synaptic и искать libgtk, он покажет вам, какой именно lib установлен.
Это позволит получить версию библиотек GTK+ для GTK + 2 и GTK+ 3.
dpkg -l | egrep "libgtk(2.0-0|-3-0)"поскольку основные версии параллельны, вы можете иметь как в своей системе, так и в моем случае, поэтому приведенная выше команда возвращает это в моей надежной системе Ubuntu:
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\).*//p' | xargs pkg-config --modversion
чтобы сделать ответ более общим, чем 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, так что я думаю, что мой вывод правильный.
Comments