Debianで古いパッケージの自動削除後にrc状態で残るゴミの大掃除

Debianのaptを使ってパッケージのアップデートを行っていると、パッケージが更新された場合に古いパッケージは自動的にremoveされる。しかし、purgeされるわけではないのでバージョン依存の設定情報があるパッケージなどは設定が削除されずに残ってしまう。そのため、dpkg –listでインストール済みのパッケージ一覧を取得すると先頭のパッケージの状態がrcとなっていつまでもゴミとして一覧に残り続けることになる。

まあ残っていても別に実害はないのだが、linux-imageなどはどんどん古いバージョンがrc状態で積み重なってしまうため、dpkg –listが無駄に長くなることになり精神衛生上よくない。そこで、このrc状態のパッケージを簡単に一掃したくなる。そんなときはこのコマンド。

dpkg –list | grep “^rc” | cut -d ” ” -f 3 | xargs sudo dpkg –purge

これでインストール済みのパッケージの一覧からrc状態のパッケージだけを抜き出し、そのパッケージ名だけを切り出した後、すべてpurgeしてくれる。一応、念のために最後のパイプだけを外した状態でリストを出してみて、ほんとにrc状態のパッケージだけが抜き出されているかをチェックした方が安全である。

dpkg –list | grep “^rc”

でrc状態の一覧を取得し、

dpkg –list | grep “^rc” | cut -d ” ” -f 3

でそのパッケージ名だけがちゃんと抽出されていることを確認したのちに、purge実行だ。