最も多くのスペースを確保するDebianパッケージを見つける方法

最も多くのスペースを確保するDebianパッケージを見つける方法

私にDebianマシンがあり、役に立たないパッケージを削除して「/」にスペースを確保したいとしましょう。レビューに適した候補パッケージを見つけるために、最初に最大のパッケージに集中したかったのです。

そうだ標準溶液これの目的は、インストールされているすべてのパッケージをインストールサイズで一覧表示することです。ただし、このソリューションには依存関係が無視され、パッケージが自動的にインストールされたのか手動でインストールされたのかが無視されるため、多くの欠点があります。

  • パッケージが大きいがそれに依存する手動でインストールされたパッケージが多い場合は、削除を考慮するのに良い候補ではないかもしれません(例えば、libicu52を削除することは、パッケージが大きくても悪い考えです)。
  • パッケージが他のパッケージに依存している場合、2番目のパッケージを削除すると、最初のパッケージを削除して得られるスペースも節約されます(たとえば、libwineを削除するとwineも削除されます)。
  • パッケージ A が別のパッケージ B に依存し、3 番目のパッケージ C が B の依存関係でのみ自動的にインストールされる場合、A を削除すると B も削除され、C も自動的に削除されます。この点を考慮する必要があります(例:wesnoth- 1.10 - 削除)。データは wesnoth-1.10 を削除します。これは wesnoth-1.10-music が削除されることを意味します。

作業に適したツールは、手動でインストールされたパッケージを削除することを提案し、そのパッケージを削除してから自動アンインストール(不要になった自動的にインストールされたパッケージの削除)を実行してスペースを解放する必要があるようです。

もちろん、次のバリエーションを使用してこれをシミュレートできます。このソリューションしかし、遅くて醜いです。だから私の質問は:パッケージの依存関係グラフを見て、この情報を計算するための標準ツールはありますか? (これについてスクリプトを書こうと思っていますが、まだ存在していないことを確認したいです。)

答え1

apt-cache depends --installedすべてのツール(、、apt-cache rdepends --installed --recurseなど)apt-mark showmanualが存在しますが、ワンストップコマンドラインソリューションについてはわかりません。dpigsコマンドラインスクリプトを一緒に使用すると、手動でインストールされたリバース依存関係がほとんどない大規模パッケージを見つけることができます。私が出発点として使用した概念証明は次のとおりです。

dpigs | awk 'NR == 1 {print $2}' | xargs apt-cache rdepends --installed --important --recurse | awk '!/:/ {print $1}' | sort -u

一方、複数の方向でグラフを複雑に分析したい場合(たとえば、手動でインストールされたパッケージセットの中で最大の冗長ディスク再帰依存関係セットがある場合)、迅速に制御できなくなる可能性があります。この時点で、よりカスタマイズ可能な項目(awkまたは?)を検討できますpython

完全な公開:私は次のプロジェクトに貢献しました。これがあなたにとって重要な場合は、それを検討してください。 Debianリポジトリに同様のプロジェクトがすでにあることがわかったら、それを公開することもできます。

私はコマンドラインですべてのことをすることを好みますが、次のことがあります。太平洋地図(またフラッグハブ)便利な代替手段です。もともとKyle KeenはArch Linux用に書いていましたが、debおよびrpmベースのシステムとも互換性があります。かつてUbuntuシステムのサンプル出力がありましたが、見つからなかったので、次は彼のサイトの例です。

輝く!

しばらく使用していませんが、再帰と逆依存性のために特定のパッケージを異なる色で強調表示するフラグもあると思います。

答え2

「apt autoremove」を実行するか、次の手順に従います。https://wiki.debian.org/ReduceDebian(Debianのスペースを徐々に減らす方法を指摘してください。)自動的にコンテンツを削除します。

apt autoremoは、削除できる不要なパッケージを見つけてディスク容量を占めます。

関連情報