erro causado por símbolo indefinido: glXGetProcAddress

erro causado por símbolo indefinido: glXGetProcAddress

Após minha última atualização dist do meu sistema debian de teste, o X se recusa a iniciar. Posso ver o seguinte erro (que aparece quando a sessão do gnome é iniciada):

erro de pesquisa de símbolo: /usr/lib/i386-linux-gnu/libcairo.so.2: símbolo indefinido: glXGetProcAddress

Além disso, até o texlive se recusa a atualizar, com o mesmo erro (causado pelo luatex).

Não sei como resolver esse problema: é possível que esteja faltando uma biblioteca crucial? Se não, o que mais poderia causar esse problema?

Responder1

@peterphresponderestava muito próximo do problema.

A placa de vídeo era uma Matrox G550 (mga), mas no passado havia uma nvidia instalada e algumas coisas glx permaneceram no /usr/lib/tls.

Não tenho experiência com o driver mga, mas entendo que não existe uma implementação proprietária do glx, então seguimos em frente tentando fazer o mesa funcionar.

Depois de instalado libgl1-mesa-glxe glx-alternative-mesaverificamos o libcairowith ldd, depois usamos dpkg -So caminho completo para entender quais pacotes foram escolhidos libGLe libGLcoreresolvidos pelo ldd, só para verificar se era mesa, ambas as bibliotecas não estavam em nenhum pacote.

Movi essas bibliotecas e desta vez lddmostrei que as bibliotecas mesa corretas foram usadas, neste ponto pedi ao @zar para verificar novamente e sua resposta foi que desta vez apt-get -f installterminou corretamente e gdm3funcionou sem erros.

Mesmo sendo um bug, acho que não podemos atender a nenhuma solicitação de bug, pois o driver nvidia não debianizado quebrou ocontrato.

A instalação de drivers proprietários ainda estámal, não entendo por que eles preferem suas próprias porcarias supposed-to-install-everywhere.runem vez de procurar algum esforço de colaboração, pelo menos com grandes distros (que provavelmente viriam de graça/sem custo).

Responder2

O erro significa que falta dependência de link em tempo de execução em sua instalação do Cairo - a julgar pelo nome do símbolo, é um pacote de implementação OpenGL (talvez Mesa) que está ausente/corrompido. A reinstalação do Cairo pode ajudar, desde que o gerenciador de pacotes corrija as dependências do pacote, que provavelmente são a causa do erro, e instale todos os pré-requisitos ausentes.

Você também pode executar ldd /usr/lib/i386-linux-gnu/libcairo.so.2e verificar as linhas que contêm => not found- que lhe dirão qual biblioteca está faltando em seu sistema, pesquisar qual pacote a contém e (re)instalá-la.

Esta também é uma síndrome típica para situações onde os pacotes dependentes são atualizados sem atualizar suas dependências (o que pode acontecer facilmente, por exemplo, com drivers proprietários - o que acabou sendo o caso aqui).

Responder3

Na nomenclatura RH: (também não conheço o Debian Packaging Format)

Eu tentei e encontrei o seguinte:

  1. # sudo **'yum whatprovides /usr/lib/libGL.so.1'**rendimentos:

    *mesa-libGL-9.2.5-1.20131220.fc20.i686 : Mesa libGL runtime libraries and DRI drivers*
    

    A. lddimpressõesdependências da biblioteca de objetos compartilhados, portanto, não é a ferramenta certa para o trabalho, A MENOS que haja um problema com a vinculação. Eu não encontrei nada.

eu olheiMUITO DIFÍCILe encontreiessa questão

  2. O resto foi fácil:

    # nm -D /usr/lib/libGL.so.1 |grep 'glXGetProcAddress'
    00014310 T glXGetProcAddress
    00014310 T glXGetProcAddressARB

   3. Eu conseguiLeitor Adobecorrer atrás disso.

Responder4

Gnomesão escritos de acordo com GTK+ librarye dependem da cairo biblioteca, cairo libraryocorreu quando você atualizou, por favor re-install, não do local, faça o download novamente.use apt-cachee pesquise cadacairo packages

informação relacionada