Elementary OS で古いカーネル パッケージを削除するにはどうすればよいですか?

Elementary OS で古いカーネル パッケージを削除するにはどうすればよいですか?

私の Elementary OS システムでは、dpkg はインストールされていないカーネル パッケージをいくつか報告します。(以前、それらに対して apt-get purge を実行しました。) それらを完全に忘れてしまいたいのですが、その方法がわかりません。

例えば:

elementary:~$ dpkg -l linux-*-3.2.0-51*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                 Version                              Description
+++-====================================-====================================-========================================================================================
un  linux-headers-3.2.0-51               <none>                               (no description available)
un  linux-headers-3.2.0-51-generic       <none>                               (no description available)
un  linux-image-3.2.0-51-generic         <none>                               (no description available)

apt-get purge が機能しない:

elementary:~$ sudo apt-get purge linux-headers-3.2.0-51
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package linux-headers-3.2.0-51 is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

dpkg が動作しません:

elementary:~$ sudo dpkg --purge linux-headers-3.2.0-51
dpkg: warning: there's no installed package matching linux-headers-3.2.0-51
elementary:~$ sudo dpkg --forget-old-unavail
dpkg: warning: obsolete '--forget-old-unavail' option, unavailable packages are automatically cleaned up.

apt-cache は次のように表示します:

elementary:~$ apt-cache policy linux-headers-3.2.0-51
linux-headers-3.2.0-51:
  Installed: (none)
  Candidate: 3.2.0-51.77
  Version table:
     3.2.0-51.77 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages

aptitude がインストールされていません。

明らかに、私が理解していないことがあります。なぜ dpkg -l は削除されたパッケージを表示するのでしょうか? dpkg にそれらを忘れさせるにはどうすればよいのでしょうか?

答え1

出力によればapt-cache policy、それらはまだアーカイブ内にある (つまり利用可能) ので、dpkg はそれらを忘れることはありません。したがって、簡単に言えば、そのレコードを削除する方法はありません。

長い答えは、おそらく/var/lib/dpkg/statusそれを編集できるということです (プレーンテキスト ファイルです)。必ずバックアップを取ってください。このファイルを壊すのは良いことではありません。その悪質さは「再インストールを検討しましたか?」というレベルに近づいています。

答え2

dpkg --clear-availdpkg の利用可能なパッケージ リストを削除するために使用できます。

関連情報