Nach meinem letzten Dist-Upgrade meines Debian-Testsystems lässt sich X nicht mehr starten. Ich sehe den folgenden Fehler (der angezeigt wird, wenn Gnome-Session gestartet wird):
Fehler bei der Symbolsuche: /usr/lib/i386-linux-gnu/libcairo.so.2: undefiniertes Symbol: glXGetProcAddress
Außerdem weigert sich sogar Texlive, ein Upgrade durchzuführen, und zwar mit demselben Fehler (verursacht durch Luatex).
Ich weiß nicht, wie ich dieses Problem beheben kann: Ist es möglich, dass eine wichtige Bibliothek fehlt? Wenn nicht, was könnte sonst dieses Problem verursachen?
Antwort1
@peterphsAntwortwar dem Problem sehr nahe.
Die Grafikkarte war eine Matrox G550 (mga), aber in der Vergangenheit war eine Nvidia installiert und einige GLX-Sachen blieben drin /usr/lib/tls
.
Ich habe keine Erfahrung mit dem MGA-Treiber, aber meines Wissens gibt es keine proprietäre GLX-Implementierung, daher haben wir versucht, Mesa zum Laufen zu bringen.
Nach der Installation haben wir es mit geprüft libgl1-mesa-glx
und dann mit dem vollständigen Pfad verwendet, um zu verstehen, aus welchen Paketen es ausgewählt und von aufgelöst wurde , nur um zu prüfen, ob es sich um Mesa handelte. Beide Bibliotheken waren in keinem Paket.glx-alternative-mesa
libcairo
ldd
dpkg -S
libGL
libGLcore
ldd
Habe diese Bibliotheken weggeschoben und dieses Mal ldd
wurde angezeigt, dass die richtigen Mesa-Bibliotheken verwendet wurden. An diesem Punkt habe ich @zar gebeten, dies noch einmal zu überprüfen und seine Antwort war, dass es dieses Mal apt-get -f install
ordnungsgemäß abgeschlossen und gdm3
ohne Fehler ausgeführt wurde.
Auch wenn es ein Fehler ist, können wir meiner Meinung nach keine Fehleranfrage beantworten, da der nicht debianisierte Nvidia-Treiber dasVertrag.
Die Installation proprietärer Treiber ist nochteuflisch, ich verstehe nicht, warum sie ihren eigenen Mist bevorzugen supposed-to-install-everywhere.run
, anstatt zumindest mit den großen Distributionen eine Zusammenarbeit anzustreben (die wahrscheinlich kostenlos wäre).
Antwort2
Der Fehler bedeutet, dass Ihrer Cairo-Installation eine Laufzeit-Link-Abhängigkeit fehlt – dem Symbolnamen nach zu urteilen, handelt es sich um ein OpenGL-Implementierungspaket (möglicherweise Mesa), das fehlt/beschädigt ist. Eine Neuinstallation von Cairo könnte helfen, vorausgesetzt, der Paketmanager behebt die Paketabhängigkeiten, die wahrscheinlich die Fehlerursache sind, und installiert alle fehlenden Voraussetzungen.
Sie können auch ldd /usr/lib/i386-linux-gnu/libcairo.so.2
Zeilen ausführen und nach ihnen suchen, die => not found
- enthalten. Dadurch erfahren Sie, welche Bibliothek auf Ihrem System fehlt. Sie können suchen, welches Paket sie enthält, und sie (erneut) installieren.
Dies ist auch ein typisches Syndrom für Situationen, in denen die abhängigen Pakete aktualisiert werden, ohne ihre Abhängigkeiten zu aktualisieren (das kann beispielsweise bei proprietären Treibern leicht passieren – und war in diesem Fall auch der Fall).
Antwort3
In der RH-Nomenklatur: (Ich kenne das Debian-Verpackungsformat auch nicht)
Ich habe es versucht und Folgendes gefunden:
# sudo **'yum whatprovides /usr/lib/libGL.so.1'**
ergibt:*mesa-libGL-9.2.5-1.20131220.fc20.i686 : Mesa libGL runtime libraries and DRI drivers*
A.
ldd
drucktAbhängigkeiten von gemeinsam genutzten Objektbibliotheken, es ist also nicht das richtige Werkzeug für diese Aufgabe, AUSSER es gibt ein Problem mit der Verknüpfung. Ich habe nichts gefunden.
ich schauteSEHR HARTund gefundendiese Frage
2. Der Rest war einfach:
# nm -D /usr/lib/libGL.so.1 |grep 'glXGetProcAddress'
00014310 T glXGetProcAddress
00014310 T glXGetProcAddressARB
3. Ich habeAdobe Readerhinterherzulaufen.
Antwort4
Gnome
sind entsprechend geschrieben GTK+ library
und es hängt von cairo
der Bibliothek ab, die cairo library
beim Upgrade aufgetreten ist. Bitte re-install
nicht lokal, sondern erneut herunterladen. Verwenden apt-cache
und suchen Sie nach jedemcairo packages