Ubuntu のlibc 辺りの依存関係が壊れたので、修復を試みる。

はじめに

この記事のトリガーは
vim で ]インサートモード+日本語入力モード] からESCキーで [ノーマルモード] への移行時に日本語入力(IME)をOFFにできないか」
という問題を解決しようとして、立ちはだかった壁を乗り越えた記録である。

作業

libcの依存関係がおかしいらしい

上記問題を解決する一つの手段として、uimを使ってテキスト編集を行えば、うまくいくらしいと知った。
Hogehoge on Rails  vimで日本語入力を快適に行うtips

そこで、[sudo apt-get install uim]を実行したら、
以下のエラーが発生し、ソフトのインストール/削除を受け付けてくれなかった。(他のツール等もインストールできない状態だった)
(sudo apt-get check のコマンド実行になっているけど、同じエラー)

andre@andre-VirtualBox:~/work/uim/uim-1.5.7$ sudo apt-get check
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
これらを直すためには 'apt-get -f install' を実行する必要があるかもしれません。
以下のパッケージには満たせない依存関係があります:
libc6 : 依存: libc-bin (= 2.13-20ubuntu5.1) しかし、2.13-20ubuntu6 はインストールされています
libc6-dbg : 依存: libc6 (= 2.13-20ubuntu6) しかし、2.13-20ubuntu5.1 はインストールされています
libc6-dev : 依存: libc6 (= 2.13-20ubuntu6) しかし、2.13-20ubuntu5.1 はインストールされています
libc6-dev-amd64 : 依存: libc6-dev (= 2.13-20ubuntu5.1) しかし、2.13-20ubuntu6 はインストールされています
libc6-pic : 依存: libc6 (= 2.13-20ubuntu6) しかし、2.13-20ubuntu5.1 はインストールされています
libc6-prof : 依存: libc6 (= 2.13-20ubuntu6) しかし、2.13-20ubuntu5.1 はインストールされています
E: 未解決の依存関係があります。-f オプションを試してください。

こんなエラーが出る原因は、libcをソースからビルドしたからだ。

現在の環境は以下のとおり。

ライブラリ バージョン
libc6 2.13-20ubuntu6
libc6-dbg 2.13-20ubuntu5.1
libc6-dev 2.13-20ubuntu5.1
libc6-dev-amd64 2.13-20ubuntu6
libc6-pic 2.13-20ubuntu5.1
libc6-prof 2.13-20ubuntu5.1

ubuntu6 か ubuntu5.1 かのどちらかに統一しなければ。
せっかく作ったubuntu6があるので、そちらをインストール。

ソースからビルドしたものは、インストールで失敗していた。
もう一度、インストールを試みる。

前回インストール時は、[sudo dpkg --install *.deb]だったから、
依存関係が満たされているものはインストールできたし、
満たされていないものはインストールできなかったしだったのだろう。

今回は、パッケージ生成ツールを使って作った ubuntu6バージョンdebファイル を単体でインストールした。
インストール成功した。

原因は、ちゃんと ubuntu6 をインストールせず、pendingしていたからだった。

uim のインストールは別の記事で。