ある日のこと。パッケージを更新して再起動を行った。すると、「あれっ、何かおかしいです」というgnome-shellの白画面になった。今までだとVideoドライバ系を更新して1回目の再起動では偶に見たので、もう一度再起動を行った。しかしながら解決しない。gdmが入れないので、コンソールモードから試すもgnomeも起動できない。色々試すとsddmとxfceでとりあえずGUI環境で動かすことができた。
ただ、sddmからgnome、KDMともどちらも起動できない。Gnomeは白画面、KDMはすぐにsddmに戻ってきてしまう。
ログを見ても修復不能エラーが発生しました。と言う記述で何が原因で、とまでは出てきていない。パッケージを再インストールしてみたり、設定を見直していたりとゴニョゴニョしていた。ログイン前のgdmで落ちているので、システムサイドの問題であるように思えた。
どうしたものか、再インストールを試みようかと思っていたところ、思いがけないところから解決の糸口が見つかった。
当方はディスクにイメージを焼くときにk3bをよく使うのだが、今回こんなメッセージが出て起動できなかった。
- k3b: symbol lookup error: /lib64/libsndfile.so.1: undefined symbol: lame_encode_buffer_interleaved_int
過去にlameをソースからビルドして入れたことがあり、その時のバージョンが3.99.3、またパッケージとしてもインストールされていてこのバージョンが3.100。古い方のlameライブラリが呼び出されていて新しいlibsndfile.soからはリンクできなかった模様。3.99.3をアンインストールして3.100を使うようにすると、k3bは無事に起動できた。
gdm/gnome起動できない問題も、これが原因。無駄に高機能なディスプレイマネージャなので、リンクできないライブラリがあったときに機能縮退せずに落ちていたようだ。そこはせめて「こんなエラーがあったので、関連する機能を無効化します」として処理を続行してもらいたかった。
設計に携わる者として、今後の参考にさせていただく。