Después de mi última actualización dist de mi sistema Debian de prueba, X se niega a iniciarse. Puedo ver el siguiente error (que aparece cuando se inicia gnome-session):
Error de búsqueda de símbolos: /usr/lib/i386-linux-gnu/libcairo.so.2: símbolo no definido: glXGetProcAddress
Además, incluso texlive se niega a actualizar, con el mismo error (provocado por luatex).
No sé cómo solucionar este problema: ¿es posible que falte una biblioteca crucial? Si no, ¿qué más podría causar este problema?
Respuesta1
@peterphrespuestaestaba muy cerca del problema.
La tarjeta de video era una Matrox G550 (mga), pero en el pasado se instaló una nvidia y quedaron algunas cosas glx /usr/lib/tls
.
No tengo experiencia con el controlador mga, pero tengo entendido que no existe una implementación patentada de glx, por lo que seguimos adelante intentando que la mesa funcione.
Una vez instalado libgl1-mesa-glx
y glx-alternative-mesa
verificamos libcairo
con ldd
, luego usamos dpkg -S
la ruta completa para comprender de qué paquetes se eligieron libGL
y libGLcore
resolvieron ldd
, solo para verificar que era mesa, ambas bibliotecas no estaban en ningún paquete.
Alejé esas bibliotecas y esta vez ldd
se mostraron las bibliotecas de mesa correctas. En este punto le pedí a @zar que verificara nuevamente y su respuesta fue que esta vez apt-get -f install
finalizó correctamente y gdm3
se ejecutó sin errores.
Incluso siendo un error, creo que no podemos completar ninguna solicitud de error ya que el controlador nvidia no debianizado rompió elcontrato.
La instalación de controladores propietarios aún estádemonio, No entiendo por qué prefieren su propia basura supposed-to-install-everywhere.run
en lugar de buscar algún esfuerzo de colaboración al menos con las principales distribuciones (que probablemente sería gratis/sin cargo).
Respuesta2
El error significa que a su instalación de Cairo le falta la dependencia del enlace en tiempo de ejecución; a juzgar por el nombre del símbolo, es un paquete de implementación OpenGL (tal vez Mesa) el que falta/está dañado. Reinstalar Cairo podría ayudar, siempre que el administrador de paquetes corrija las dependencias de los paquetes, que probablemente sean la causa del error, e instale todos los requisitos previos que faltan.
También puede ejecutar ldd /usr/lib/i386-linux-gnu/libcairo.so.2
y buscar líneas que contengan => not found
- que le indicarán qué biblioteca falta en su sistema, buscar qué paquete la contiene y (re)instalarla.
Este también es un síndrome típico de situaciones en las que los paquetes dependientes se actualizan sin actualizar sus dependencias (eso puede suceder fácilmente, por ejemplo, con controladores propietarios, como resultó ser el caso aquí).
Respuesta3
En nomenclatura RH: (tampoco conozco el formato de empaquetado de Debian)
Lo intenté y encontré lo siguiente:
# sudo **'yum whatprovides /usr/lib/libGL.so.1'**
rendimientos:*mesa-libGL-9.2.5-1.20131220.fc20.i686 : Mesa libGL runtime libraries and DRI drivers*
A.
ldd
impresionesdependencias de la biblioteca de objetos compartidos, por lo que no es la herramienta para el trabajo A MENOS que haya un problema con el enlace. No encontré nada.
MiréREALMENTE DIFÍCILy encontradoesta pregunta
2. El resto fue fácil:
# nm -D /usr/lib/libGL.so.1 |grep 'glXGetProcAddress'
00014310 T glXGetProcAddress
00014310 T glXGetProcAddressARB
3. tengoAdobe Readercorrer tras esto.
Respuesta4
Gnome
están escritos de acuerdo GTK+ library
y dependen de cairo
la biblioteca, cairo library
ocurrió cuando actualizó, por favor re-install
, no desde local, descárguelo nuevamente. Úselo apt-cache
y busque cadacairo packages