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-glx
e glx-alternative-mesa
verificamos o libcairo
with ldd
, depois usamos dpkg -S
o caminho completo para entender quais pacotes foram escolhidos libGL
e libGLcore
resolvidos pelo ldd
, só para verificar se era mesa, ambas as bibliotecas não estavam em nenhum pacote.
Movi essas bibliotecas e desta vez ldd
mostrei 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 install
terminou corretamente e gdm3
funcionou 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.run
em 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.2
e 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:
# 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.
ldd
impressõ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
Gnome
são escritos de acordo com GTK+ library
e dependem da cairo
biblioteca, cairo library
ocorreu quando você atualizou, por favor re-install
, não do local, faça o download novamente.use apt-cache
e pesquise cadacairo packages