سؤال

أحتاج إلى تحديد إصدار GTK+ المثبت على Ubuntu

لا يبدو أن الرجل يساعد

هل كانت مفيدة؟

المحلول

هذا الاقتراح سيخبرك بالإصدار الثانوي 2.0 المثبت.سيكون للإصدارات الرئيسية المختلفة أسماء حزم مختلفة لأنها يمكن أن تتواجد معًا على النظام (من أجل دعم التطبيقات المبنية على الإصدارات الأقدم).

حتى بالنسبة لملفات التطوير، والتي عادةً ما تتيح لك إصدارًا واحدًا فقط على النظام، يمكنك الحصول على إصدار gtk 1.x وإصدار gtk 2.0 على نفس النظام (ملفات التضمين موجودة في أدلة تسمى gtk-1.2 أو جي تي كيه-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

نصائح أخرى

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

الحصول على نسخة 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.c):

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

عند تشغيل هذا سوف تحصل على بعض الإخراج.على جهازي القديم المضمن أحصل على ما يلي:

[root@n00E04B3730DF n2]# ./version 
2.10.4
[root@n00E04B3730DF n2]#

يحاول،

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

أو،

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

يمكنك أيضًا فتح Synaptic والبحث عن libgtk، وسيُظهر لك بالضبط أي lib تم تثبيته.

يحاول:

 dpkg-query -W libgtk-3-bin

أعتقد أن الطريقة المستقلة للتوزيع هي:

gtk-config --version

سيحصل هذا على إصدار مكتبات 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+، مع بعض السحر، فإن هذا يوفر:

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

لجعل الإجابة أكثر عمومية من Ubuntu (لدي Redhat):

عادةً ما يتم تثبيت gtk ضمن /usr، ولكن من المحتمل أن يكون في مواقع أخرى.يجب أن يكون هذا مرئيًا في متغيرات البيئة.تحقق مع

env | grep gtk

ثم حاول العثور على مكان تخزين ملفات gtk الخاصة بك.على سبيل المثال، استخدم locate و جريب.

locate gtk | grep /usr/lib

وبهذه الطريقة وجدت /usr/lib64/gtk-2.0, ، الذي يحتوي على الدليل الفرعي 2.10.0, ، والذي يحتوي على العديد من ملفات المكتبة .so.استنتاجي هو أن لدي إصدار gtk+ 2.10.يتوافق هذا إلى حد ما مع الأمر rpm في Redhat: rpm -qa | grep gtk2, ، لذلك أعتقد أن استنتاجي صحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top