우분투에 어떤 버전의 GTK+가 설치되어 있는지 어떻게 알 수 있습니까?
문제
Ubuntu에 설치되는 GTK+ 버전을 결정해야합니다.
사람은 도움이되지 않는 것 같습니다
해결책
이 제안 어떤 마이너 버전의 2.0이 설치되었는지 알려줍니다. 다른 주요 버전은 시스템에서 공존 할 수 있기 때문에 다른 패키지 이름을 갖습니다 (이전 버전으로 구축 된 응용 프로그램을 지원하기 위해).
일반적으로 시스템에 하나의 버전 만 있으면 GTK 1.X 버전과 동일한 시스템에 GTK 2.0 버전을 가질 수있는 개발 파일의 경우에도 GTK-1.2 또는 GTK-1.2 또는라는 디렉토리에 있습니다. GTK-2.0).
요컨대 "시스템에있는 GTK 버전"에 대한 간단한 답은 없습니다. 하지만...
다음과 같은 것을 시도하십시오.
dpkg -l libgtk* | grep -e '^i' | grep -e 'libgtk-*[0-9]'
시스템에있는 -dev 패키지를 포함하여 모든 libgtk 패키지를 나열합니다. 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
시냅스를 열고 libgtk를 검색 할 수도 있습니다. 어떤 lib가 설치되었는지 정확하게 보여줍니다.
노력하다:
dpkg-query -W libgtk-3-bin
분포 독립적 인 방식은 다음과 같습니다.
gtk-config --version
이렇게하면 GTK+ 2 및 GTK+ 3 용 GTK+ 라이브러리 버전이 얻을 수 있습니다.
dpkg -l | egrep "libgtk(2.0-0|-3-0)"
주요 버전이 병렬 설치 가능하므로 시스템에 두 가지가있을 수 있으므로 위의 명령은 내 우분투 트러시 시스템에서이를 반환합니다.
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의 경우에는 SED 마술과 함께 다른 주요 버전의 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
그리고 grep.
locate gtk | grep /usr/lib
이런 식으로 나는 찾았다 /usr/lib64/gtk-2.0
, 서브 디렉토리가 포함되어 있습니다 2.10.0
, 많은 .so 라이브러리 파일이 포함되어 있습니다. 내 결론은 GTK+ 버전 2.10이 있다는 것입니다. 이것은 redhat의 rpm 명령과 일치합니다. rpm -qa | grep gtk2
, 그래서 나는 내 결론이 옳다고 생각합니다.