Pergunta

Eu preciso determinar qual versão do GTK + está instalado no Ubuntu

O homem não parece ajudar

Foi útil?

Solução

Esta sugestão irá dizer-lhe qual a versão menor de 2.0 está instalado. Diferentes versões principais terão diferentes nomes dos pacotes porque eles podem coexistir no sistema (para aplicações de suporte criados com versões mais antigas).

Mesmo para arquivos de desenvolvimento, que normalmente só iria deixá-lo ter uma versão no sistema, você pode ter uma versão 1.x gtk e uma versão do GTK 2.0 no mesmo sistema (a incluir arquivos estão em diretórios chamados gtk -1,2 ou GTK-2.0).

Assim, em breve não há uma resposta simples para "qual a versão do GTK está no sistema". Mas ...

Tente algo como:

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

para listar todos os pacotes libgtk, inclusive -dev, que estão no seu sistema. dpkg -l irá listar todos os pacotes que dpkg conhece, incluindo aqueles que não estão atualmente instalados, então eu usei grep para listar apenas aqueles que estão instalados (começa linha com i).

Como alternativa, e provavelmente melhor se é a versão dos cabeçalhos etc que você está em interessado, o uso pkg-config:

pkg-config --modversion gtk+

irá dizer-lhe qual a versão do arquivos de desenvolvimento 1.x GTK estão instalados, e

pkg-config --modversion gtk+-2.0

irá dizer-lhe qual a versão do GTK 2.0. A versão antiga 1.x também tem o seu próprio programa gtk-config que faz a mesma coisa. Da mesma forma, para o GTK + 3:

pkg-config --modversion gtk+-3.0

Outras dicas

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

obter a versão GTK3:

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

ou apenas o número da versão

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

Você também pode apenas compilar o seguinte programa e executá-lo em sua máquina.

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

compilação com (supondo acima arquivo de origem é chamado version.c):

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

Quando você executar este você vai ter alguma saída. No meu dispositivo incorporado velho recebo a seguinte:

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

Tente,

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

ou,

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

Você pode sináptica também acaba de abrir e procurar libgtk, ele irá mostrar-lhe exatamente o que lib está instalado.

Tente:

 dpkg-query -W libgtk-3-bin

Eu acho que uma forma independente de distribuição é a seguinte:

gtk-config --version

Isto irá obter a versão dos + bibliotecas GTK para GTK + 2 e GTK + 3.

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

Como as versões principais são instaláveis ??paralelo, você pode ter os dois em seu sistema, que é o meu caso, então o comando acima retorna isso em meu sistema 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

isso significa que tenho GTK + 2.24.23 e 3.10.8 instalado.

Se o que você quer é a versão dos arquivos de desenvolvimento, uso pkg-config --modversion gtk+-3.0 por exemplo, para GTK + 3. Para estender isso para as diferentes versões principais do GTK +, com um pouco de magia sed, isto dá:

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

Para tornar a resposta mais geral do Ubuntu (eu tenho Redhat):

gtk é geralmente instalado em / usr, mas possivelmente em outros locais. Este deve ser visível em variáveis ??de ambiente. Verifique com

env | grep gtk

Em seguida, tentar encontrar onde seus arquivos GTK são armazenados. Por exemplo, o uso locate e grep.

locate gtk | grep /usr/lib

Desta forma, achei /usr/lib64/gtk-2.0, que contém o 2.10.0 subdiretório, que contém muitos arquivos .so da biblioteca. Minha conclusão é que eu tenho GTK + versão 2.10. Isto é bastante consistente com o comando rpm no Redhat:. rpm -qa | grep gtk2, então eu acho que a minha conclusão é direito

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top