debianのrc状態のパッケージを削除する。

■debianのrc状態のパッケージを削除して綺麗にする。
 特にテスト環境や評価環境の仮想マシンで色々導入テストなどしていると、
 以下のように設定ファイルが残ってしまうことがあります。

$ dpkg -l | grep ^rc | awk '{print $2}' | column
autoconf                libprelude2             php-pear
html2text               libqdbm14               php5-cli
libhtp1                 libruby1.8              php5-common
libmysqlclient16        libyaml-0-2             php5-suhosin
libnet1                 lintian                 ruby1.8
libnetfilter-queue1     mysql-common
libonig2                oinkmaster

■以下、ii、rc以外を見たことがありません。
 すべて小文字のはずですが、エラーの大文字は「異常」とありますので、
 自分のミスやハードウエア障害以外で、異常な環境になったことは特にありません。
 ※lennyからsqueezeにアップグレードしたときにはもしかしたら
  ii/rc以外の状態があったかも知れませんが、今はありません。

$ dpkg -l | head -3 | sed s%"/\||"%"\n"%g | grep -v "^\$"
要望=(U)不明
(I)インストール
(R)削除
(P)完全削除
(H)維持
 状態=(N)(I)インストール済
(C)設定
(U)展開
(F)設定失敗
(H)半インストール
(W)トリガ待ち
(T)トリガ保留
 エラー?=(空欄)(R)要再インストール (状態,エラーの大文字=異常)

■ということで、ii、rc以外の状態が無いことを確認。

$ dpkg -l | grep -v ^ii | grep -v ^rc | sed s/"-"/"\n&"/g
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)維持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前                              バージョン              説明
+++
-===================================
-============================
-==========================================================================

■一度purgeを空回りさせる。
 ※「y」の入力がない場合、nとして処理されない。

$ dpkg -l | grep ^rc | awk '{print $2}' | for list in `xargs`;do sudo apt-get purge "$list";done

■心配症の方は「n」を明示的に渡します。

$ dpkg -l | grep ^rc | awk '{print $2}' | for list in `xargs`;do echo "n" | sudo apt-get purge "$list";done

■表示されるメッセージに問題が無ければ、purgeする。
 ※上記の依存関係等で一緒に削除されるパッケージの一覧にシステムに必要なパッケージが無いこと。

$ dpkg -l | grep ^rc | awk '{print $2}' | for list in `xargs`;do sudo apt-get purge -y "$list";done

■必要とされなくなった依存パッケージの削除

$ sudo apt-get autoremove

■取得したパッケージのローカルリポジトリを掃除する。

$ sudo apt-get autoclean

■purgeされたことを確認。

$ dpkg -l | grep ^rc | wc -l
0

■正常にインストールされたパッケージのみであること。

$ dpkg -l | grep -v ^ii | sed s/"-"/"\n&"/g
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)維持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前                              バージョン              説明
+++
-===================================
-============================
-==========================================================================

■インストールされているパッケージの総数の確認。

$ dpkg -l | grep ^ii | wc -l
746