テストDebianシステムを最後にdist-upgradeした後、Xは起動を拒否しました。次のエラーが表示されます(gnome-sessionの起動時に表示されます)。
シンボル検索エラー:/usr/lib/i386-linux-gnu/libcairo.so.2:未定義シンボル:glXGetProcAddress
さらに、texliveでさえ、同じエラー(luatexによって引き起こされる)へのアップグレードを拒否します。
この問題を解決する方法がわかりません。重要なライブラリが欠落している可能性はありますか?そうでない場合、この問題を引き起こすもう1つの原因は何ですか?
答え1
@Peterfu回答質問に非常に近いです。
グラフィックカードはMatrox G550(mga)ですが、過去にnvidiaがインストールされていて、一部のglxエントリはまだまだありません/usr/lib/tls
。
私はmgaドライバの経験はありませんが、排他的なglxの実装がないことを知っているので、私はメサが動作し続けました。
インストール後、フルパスを使用してどのlibgl1-mesa-glx
パッケージが選択され解析されているかを確認し、それがメサであることを確認し、どのパッケージにもライブラリがないことを確認しました。glx-alternative-mesa
libcairo
ldd
dpkg -S
libGL
libGLcore
ldd
ライブラリを別の場所に移動すると、今回はldd
正しいメサライブラリが使用されていることがわかりました。この時点で@zarに再確認を依頼し、彼の答えは今回はapt-get -f install
正しく行われ、gdm3
エラーなしで実行されたということでした。
バグといっても Debian 化されていない NVIDIA ドライバが故障してバグリクエストを処理できないようです。契約。
専用ドライバのインストールが残っています邪悪なsupposed-to-install-everywhere.run
、私は彼らが少なくとも主要なディストリビューション(無料/無料かもしれません)との協力を求めるのではなく、自分のゴミが好きな理由を理解していません。
答え2
このエラーは、Cairoのインストールにランタイムリンクの依存関係がないことを意味します。シンボル名で判断すると、欠落/破損したOpenGL実装パッケージ(おそらくMesa)です。パッケージマネージャがパッケージの依存関係(エラーの原因となる可能性がある)を修正し、不足している前提条件をインストールする場合は、Cairoを再インストールすることが役に立ちます。
また、-を含む行を実行しldd /usr/lib/i386-linux-gnu/libcairo.so.2
て確認することもできます=> not found
。これは、システムからどのライブラリが欠落しているかを知らせ、そのライブラリを含むパッケージを検索して(再)インストールします。
これは、依存関係を更新せずに依存パッケージが更新される状況の一般的な症候群でもあります(たとえば、独自のドライバで簡単に発生する可能性があり、ここでは該当することがわかりました)。
答え3
RH 命名法: (私も Debian パッケージング形式を知りません)
私はそれを試して、次を見つけました。
# sudo **'yum whatprovides /usr/lib/libGL.so.1'**
生産する:*mesa-libGL-9.2.5-1.20131220.fc20.i686 : Mesa libGL runtime libraries and DRI drivers*
行く。
ldd
印刷物共有オブジェクトライブラリの依存関係したがって、リンクに問題がない限り、作業のためのツールではありません。私は何も見つかりませんでした。
私が見た本当に大変ですそして発見この問題
2.残りは非常に簡単です。
# nm -D /usr/lib/libGL.so.1 |grep 'glXGetProcAddress'
00014310 T glXGetProcAddress
00014310 T glXGetProcAddressARB
3.私が得たアドビリーダーこれを追いかけなさい。
答え4
Gnome
ライブラリに基づいて作成され、ライブラリGTK+ library
によって異なります。アップグレードするとどうなりますか?ローカルで代わりにもう一度ダウンロードしてください。それぞれの利用と検索cairo
cairo library
re-install
apt-cache
cairo packages