Muszę ustalić, która wersja GTK + jest zainstalowana na Ubuntu
Wydaje się, że człowiek nie pomaga
Muszę ustalić, która wersja GTK + jest zainstalowana na Ubuntu
Wydaje się, że człowiek nie pomaga
Odpowiedzi:
Ta sugestia powie Ci, która wersja pomocnicza 2.0 jest zainstalowana. Różne wersje główne będą miały różne nazwy pakietów, ponieważ mogą współistnieć w systemie (w celu obsługi aplikacji zbudowanych na starszych wersjach).
Nawet dla plików deweloperskich, które normalnie pozwolą ci mieć tylko jedną wersję w systemie, możesz mieć wersję gtk 1.xi wersję gtk 2.0 w tym samym systemie (pliki nagłówkowe są w katalogach o nazwie gtk-1.2 lub gtk-2.0).
Krótko mówiąc, nie ma prostej odpowiedzi na pytanie „jaka wersja GTK jest w systemie”. Ale...
Spróbuj czegoś takiego:
dpkg -l libgtk* | grep -e '^i' | grep -e 'libgtk-*[0-9]'
aby wyświetlić wszystkie pakiety libgtk, łącznie z pakietami -dev, które są w twoim systemie. dpkg -l
wyświetli listę wszystkich pakietów, o których wie dpkg, łącznie z tymi, które nie są obecnie zainstalowane, więc użyłem grep, aby wyświetlić tylko te, które są zainstalowane (linia zaczyna się od i).
Alternatywnie, i prawdopodobnie lepiej, jeśli jest to wersja nagłówków itp., Która Cię interesuje, użyj pkg-config:
pkg-config --modversion gtk+
powie ci, jaka wersja plików programistycznych GTK 1.x jest zainstalowana, a
pkg-config --modversion gtk+-2.0
powie ci, która wersja GTK 2.0. Stara wersja 1.x ma również swój własny program gtk-config, który robi to samo. Podobnie w przypadku GTK + 3:
pkg-config --modversion gtk+-3.0
libgtk*
in dpkg -l libgtk*
musi być ujęty w pojedyncze cudzysłowy ( dpkg -l 'libgtk*'
), aby zapobiec rozwijaniu symboli wieloznacznych na poziomie powłoki.
pobierz wersję GTK3:
dpkg -s libgtk-3-0|grep '^Version'
lub tylko numer wersji
dpkg -s libgtk-3-0|grep '^Version' | cut -d' ' -f2-
Możesz użyć tego polecenia:
$ dpkg -s libgtk2.0-0|grep '^Version'
Możesz także po prostu skompilować następujący program i uruchomić go na swoim komputerze.
#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);
}
skompiluj z (zakładając, że powyższy plik źródłowy nosi nazwę wersja.c):
gcc version.c -o version `pkg-config --cflags --libs gtk+-2.0`
Kiedy to uruchomisz, uzyskasz pewne wyniki. Na moim starym urządzeniu wbudowanym otrzymuję następujące informacje:
[root@n00E04B3730DF n2]# ./version
2.10.4
[root@n00E04B3730DF n2]#
--libs gtk+-3.0
zamiast tego skompiluję , otrzymam 3.10.8. To po prostu wydaje mi się mówić, że mam pliki programistyczne dla obu, ale nie używam ich w tej chwili.
Próbować,
apt-cache policy libgtk2.0-0 libgtk-3-0
lub,
dpkg -l libgtk2.0-0 libgtk-3-0
To nie jest takie trudne.
Po prostu sprawdź wersję narzędzi gtk + toolkit z terminala:
gtk-launch --version
Możesz także po prostu otworzyć synaptic i wyszukać libgtk, pokaże ci dokładnie, która biblioteka jest zainstalowana.
Myślę, że sposób niezależny od dystrybucji to:
gtk-config --version
Próbować:
dpkg-query -W libgtk-3-bin
2
przez 3
.
Spowoduje to uzyskanie wersji bibliotek GTK + dla GTK + 2 i GTK + 3.
dpkg -l | egrep "libgtk(2.0-0|-3-0)"
Ponieważ główne wersje są instalowane równolegle, możesz mieć oba w swoim systemie, co jest moim przypadkiem, więc powyższe polecenie zwraca to w moim systemie 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
Oznacza to, że mam zainstalowane GTK + 2.24.23 i 3.10.8.
Jeśli chcesz, to wersja plików deweloperskich, użyj pkg-config --modversion gtk+-3.0
na przykład dla GTK + 3. Aby rozszerzyć to na różne główne wersje GTK +, z odrobiną magii seda, daje to:
pkg-config --list-all | sed -ne 's/\(gtk+-[0-9]*.0\).*/\1/p' | xargs pkg-config --modversion
Aby odpowiedź była bardziej ogólna niż Ubuntu (mam Redhat):
gtk jest zwykle instalowany w / usr, ale prawdopodobnie w innych lokalizacjach. Powinno to być widoczne w zmiennych środowiskowych. Sprawdź z
env | grep gtk
Następnie spróbuj znaleźć miejsce przechowywania plików GTK. Na przykład użyj locate
i grep.
locate gtk | grep /usr/lib
W ten sposób znalazłem /usr/lib64/gtk-2.0
, który zawiera podkatalog 2.10.0
zawierający wiele plików bibliotecznych .so. Mój wniosek jest taki, że mam GTK + w wersji 2.10. Jest to raczej zgodne z poleceniem rpm na Redhat:, rpm -qa | grep gtk2
więc myślę, że mój wniosek jest słuszny.