2008-09-24 37 views

Trả lời

54

This suggestion sẽ cho bạn biết nhỏ phiên bản 2.0 được cài đặt. Các phiên bản chính khác nhau sẽ có các tên gói khác nhau vì chúng có thể cùng tồn tại trên hệ thống (để hỗ trợ các ứng dụng được xây dựng với các phiên bản cũ hơn). Ngay cả đối với các tệp phát triển, thông thường sẽ chỉ cho phép bạn có một phiên bản trên hệ thống, bạn có thể có phiên bản gtk 1.x và phiên bản gtk 2.0 trên cùng một hệ thống (các tệp bao gồm nằm trong các thư mục có tên gọi là gtk-1.2 hoặc gtk-2.0).

Vì vậy, trong ngắn hạn không có câu trả lời đơn giản cho "phiên bản GTK nào có trên hệ thống". Nhưng ...

Hãy thử một cái gì đó như:

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

để liệt kê tất cả các gói libgtk, bao gồm cả những -dev, có trên hệ thống của bạn. dpkg -l sẽ liệt kê tất cả các gói mà dpkg biết, kể cả những gói hiện chưa được cài đặt, vì vậy tôi đã sử dụng grep để chỉ liệt kê những gói được cài đặt (dòng bắt đầu bằng i).

Ngoài ra, và có lẽ tốt hơn nếu đó là phiên bản của các tiêu đề vv mà bạn quan tâm, sử dụng pkg-config:

pkg-config --modversion gtk+ 

sẽ cho bạn biết những gì phiên bản của file phát triển 1.x GTK được cài đặt , và

pkg-config --modversion gtk+-2.0 

sẽ cho bạn biết phiên bản GTK 2.0 nào. Phiên bản 1.x cũ cũng có chương trình gtk-config riêng của nó làm điều tương tự. Tương tự như vậy, đối với GTK + 3:

pkg-config --modversion gtk+-3.0 
+1

Bất kỳ đề xuất nào cho cửa sổ? làm cách nào để tìm phiên bản gtk đã cài đặt trên cửa sổ? –

+0

Chương trình pkg-config là một phần của quá trình cài đặt windows. Vì vậy, viết pkg-config --modversion gtk + -2.0 trong dòng lệnh sẽ hoạt động. – pepan

+0

Chắc chắn 'libgtk *' trong 'dpkg -l libgtk *' phải được đặt trong dấu nháy đơn ('dpkg -l 'libgtk *'') để ngăn chặn việc mở rộng ký tự đại diện ở cấp độ vỏ. – sevko

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

này đã nhận được phiên bản nhỏ của GTK + 2, nhưng GTK + 3 đã được ra trong nhiều năm nay và GTK + 4 trên đường. – liberforce

1

Tôi nghĩ một cách phân phối độc lập là:

gtk-config --version

+1

Trong khi gtk-config là phân phối độc lập, nó chỉ hoạt động cho GTK 1.x. Cách chính xác cho các phiên bản mới hơn là sử dụng pkg-config, như tôi đã nói trong câu trả lời của tôi. –

3

Bạn cũng có thể chỉ cần mở synaptic và tìm kiếm libgtk, nó sẽ cho bạn thấy chính xác mà lib là Cài đặt.

20

get phiên bản GTK3:

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

hoặc chỉ số phiên bản

dpkg -s libgtk-3-0|grep '^Version' | cut -d' ' -f2- 
+0

Không yêu cầu cài đặt 'pkg-config', tốt. –

0

Để thực hiện các câu trả lời tổng quát hơn Ubuntu (Tôi có Redhat):

gtk thường được cài đặt dưới/usr, nhưng có thể ở các địa điểm khác. Điều này sẽ được hiển thị trong các biến môi trường. Kiểm tra với

env | grep gtk 

Sau đó thử tìm nơi chứa tệp gtk của bạn. Ví dụ: sử dụng locate và grep.

locate gtk | grep /usr/lib 

Bằng cách này, tôi thấy /usr/lib64/gtk-2.0, chứa các thư mục con 2.10.0, trong đó có nhiều tập tin thư viện .so. Kết luận của tôi là tôi có gtk + phiên bản 2.10. Điều này khá phù hợp với lệnh rpm trên Redhat: rpm -qa | grep gtk2, vì vậy tôi nghĩ kết luận của tôi là đúng.

6

Bạn cũng có thể biên dịch chương trình sau và chạy chương trình đó trên máy của mình.

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

biên dịch với (giả định trên file nguồn được đặt tên version.c):

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

Khi bạn chạy này, bạn sẽ nhận được một số đầu ra. Trên thiết bị nhúng cũ của tôi, tôi nhận được như sau:

[[email protected] n2]# ./version 
2.10.4 
[[email protected] n2]# 
+1

Nếu tôi biên dịch như bạn nói, tôi nhận được 2.24,27. Nếu tôi biên dịch với '--libs gtk + -3.0' thay vào đó, tôi nhận được 3.10.8. Điều này dường như chỉ cho tôi biết rằng tôi có các tệp phát triển cho cả hai, nhưng không phải là tôi đang sử dụng vào lúc này. – tsbertalan

+0

gtkv.c: 1: 21: lỗi nghiêm trọng: gtk/gtk.h: Không có tệp hoặc thư mục nào như vậy – sloven

+0

@tsbertalan "sử dụng tại thời điểm này" tùy thuộc vào phiên bản của GTK mà các ứng dụng khác nhau của bạn được liên kết. – Chimera

4

Hãy thử,

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

hay,

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

Hãy thử:

dpkg-query -W libgtk-3-bin 
+0

Đây là câu trả lời duy nhất có hành vi khác khi tôi thay '2' cho' 3'. – tsbertalan

0

này sẽ nhận được phiên bản của thư viện GTK + cho GTK + 2 và GTK + 3.

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

Như phiên bản chính là song song cài đặt, bạn có thể có cả trên hệ thống của bạn, đó là trường hợp của tôi, vì vậy lệnh lợi nhuận trên này trên hệ thống Trusty Ubuntu của tôi:

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 

này có nghĩa là tôi có Đã cài đặt GTK + 2.24.23 và 3.10.8.

Nếu những gì bạn muốn là phiên bản của các tập tin phát triển, sử dụng pkg-config --modversion gtk+-3.0 ví dụ cho GTK + 3. Để mở rộng đó đến phiên bản chính khác nhau của GTK +, với một số ma thuật sed, điều này mang lại:

pkg-config --list-all | sed -ne 's/\(gtk+-[0-9]*.0\).*/\1/p' | xargs pkg-config --modversion 
Các vấn đề liên quan