私ルビー長年にわたって蓄積され、ディスク容量を占める古いカーネルを削除するのに役立ちます。 (私のラップトップには19個のコアがあり、小さなSSDがあります...)
一部の人々はaptitudeをインストールせず、gemユーザーが何もインストールしたくないので、apt-getまたはdpkgをアンインストールプログラムとして使用したいと思います。
問題はこのとき来る。一部aptitude
ユーザーはこれを他の目的に使用します。想像する:
- ユーザーは
apt-get purge
私のgemを使用してカーネルパッケージを正常に取得しました。 aptitude
何らかの理由でユーザーは対話モードで起動します。- ユーザーは変更を表示せずにすぐに「g」キー(Pkgダウンロード/インストール/削除)を押します。 -->
aptitude
削除したパッケージを再ダウンロードして再インストールしますapt-get
。
現在、gemはapt-get purge <packages>
カーネルパッケージを消去するために使用されています。 (ここで見た.)私も試してみましたが、dpkg --purge <packages>
結果は同じで、適性はまだ再インストールしたいと思います。
私はマニュアルaptitude
全体を読んでたくさん検索しましたが、サイコロはありませんでした。
おそらくそれがどこにあるかを見つけることができれば、タグがあるかタグ付けされていないパッケージのリストをプログラムで管理できますaptitude
(私はよりきれいなソリューションを好むが)。そうでないと仮定します。/var/lib/dpkg/status
そうでなければ違いはありませんか?
dpkg-query はパッケージstatus
を としてマークNot
し、desired
状態をUnknown
。
deKernel$ dpkg-query -l linux-image-3.2.0-39-generic
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-image-3.2.0-39-generic <none> (no description available)
deKernel$
aptitudeに行き、これらのカーネルパッケージの表示を手動でオフにすると問題が消える可能性がありますが、これは明らかに実用的ではありません。
答え1
aptitude
/var/lib/aptitude/pkgstates
残念ながら、文書化されていないような独自のパッケージ状態データベースがあります。次のように各パッケージのチャンクを保存します。
Package: bash
Architecture: amd64
Unseen: no
State: 1
Dselect-State: 1
Remove-Reason: 0
installed
私は状態1がを意味し、白い状態3がを意味すると信じていますnot installed
。私のシステムにはまだ状態4のパッケージがいくつかありますが、それが何を意味するのか理解できません。
dpkg
私はあなたの問題は、データベースからデータベース/var/lib/dpkg/status
へaptitude
の結果が一貫していないと思います/var/lib/aptitude/pkgstates
。 ~によるとこの投稿 pkgstates
「ユーザーの「予想」パッケージの状態」を反映する必要があるため、apt-getがパッケージを削除した場合でも、ユーザーはこれらのパッケージをインストールしたいと思うかもしれません。
問題に対する最善の解決策は、Tripleeeが提案したとおりに行うことです。aptitude
インストールされている場合は使用し、そうでない場合はapt-get
。