aptitude search libc6
とかすると、左側に flag がついて検索結果が表示されます。たいてい i
(installed) か p
(purged) になっています。
uda@host$ aptitude search libc6
i libc6 - 組込用 GNU C ライブラリ: 共有ライブラリ
p libc6-dbg - 組込用 GNU C ライブラリ: 分離したデバッグシンボル
i A libc6-dev - 組込用 GNU C ライブラリ: 開発用ライブラリおよびヘッダファイル
p libc6-dev-i386 - Embedded GNU C Library: 32-bit development libraries for AMD64
c libc6-i386 - 組込用 GNU C ライブラリ: AMD64 用 32 ビット共有ライブラリ
p libc6-pic - Embedded GNU C Library: PIC archive library
p libc6-prof - Embedded GNU C Library: Profiling Libraries
さて、とある計算機で、libc6
に u
の flag がついていて、インストールされていませんでした。超超超基本的なパッケージである libc6
は他のパッケージから依存されまくりなので、これを解消して i
にしないことには支障出まくりです。しかし purge や reinstall を試みてもエラーが出て失敗します。調べてみると u
は unpacked の意味らしいですが、man apt-get
を読んでもそれ以上のことは分かりません。
まぁ経過はどうでもいいので結論を言うと、u
は unpack までされたけれどまだ configure されていない状態 (Cf. man dpkg
) のようで、次のようにすると解決しました:
uda@host$ sudo dpkg --configure libc6
すごく基本的なことだと思うのですが。よく分からないままパッケージ管理を使っているので結構手間取りました。
余談。これに関連して少し調べものをしていたら、なかなかに cool なスライドを見つけました。flag についても書かれています。