Posted at

apt で unpacked なパッケージを正常にインストールする

More than 5 years have passed since last update.

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

さて、とある計算機で、libc6u の flag がついていて、インストールされていませんでした。超超超基本的なパッケージである libc6 は他のパッケージから依存されまくりなので、これを解消して i にしないことには支障出まくりです。しかし purge や reinstall を試みてもエラーが出て失敗します。調べてみると u は unpacked の意味らしいですが、man apt-get を読んでもそれ以上のことは分かりません。

まぁ経過はどうでもいいので結論を言うと、u は unpack までされたけれどまだ configure されていない状態 (Cf. man dpkg) のようで、次のようにすると解決しました:

uda@host$ sudo dpkg --configure libc6

すごく基本的なことだと思うのですが。よく分からないままパッケージ管理を使っているので結構手間取りました。


余談。これに関連して少し調べものをしていたら、なかなかに cool なスライドを見つけました。flag についても書かれています。