どのインストール済みソフトウェアパッケージがDebianで最も多くのディスク容量を使用していますか?


77

ルートパーティションのディスク領域が不足しているため、システムから一部のアプリケーションを削除します。どのソフトウェアパッケージが最も多くのディスク容量を使用しているかを確認するにはどうすればよいですか?それを表示することは可能aptitudeですか?

dfまたはのような汎用ディスクスペースアナライザーについては知っていbaobabますが、インストールされたアプリケーションのソリューションが必要です。


回答:


54

最も簡単なのは実行することwajig largeです。パッケージは、apt-install離れている必要があります。

他の方法で行うための2つのリンクを次に示します。

また、インストールされたサイズは、パッケージが占有するスペースの一部にすぎないことも忘れないでください。圧縮されたバージョンはおそらくまだキャッシュにあり、それもいくらかのスペースを占有します。これらはで削除できapt-get cleanます。


4
パッケージキャッシュを空にするコマンドはapt-get cleanです。「取得したパッケージファイルのローカルリポジトリをクリア」
-man

98

最も簡単な方法(追加のパッケージをインストールしない)は次のとおりです。

dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n

パッケージをサイズ順に表示し、最大のパッケージを最後に表示します。

残念ながら、少なくとも一部のシステムでは、このリストには削除されているが削除されていないパッケージが含まれています。このようなパッケージはすべて、次を実行することで削除できます。

dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge

または、アンインストールされたパッケージをパージしたくない場合は、このバリアントを使用して、リストから「インストール済み」状態にないパッケージを除外できます。

dpkg-query -Wf '${db:Status-Status} ${Installed-Size}\t${Package}\n' | sed -ne 's/^installed //p'|sort -n

2
「インストール済みサイズ」は、インストール済みパッケージに必要なスペースの推定値です。実際のサイズではありません、私は恐れています。
ロルフ

23

あなたがしたいのでsee which [installed] software packages use the most disk space[,] from aptitude...もちろん使用できますaptitude!CLIまたは{インタラクティブ、TUI、非CLI}の優れた機能を使用します。最初にCLIについて、次にTUIについて説明しましょう。いずれにしても、あなたはただ知る必要があります

  • 使用するコマンドラインオプション。次のテキストでは(ドキュメントの検索を容易にするために)長いオプションを使用していますが、もちろん短いオプションも使用できます。
  • 使用するコマンドライン引数
  • 使用する出力フォーマット文字列

どのインストール済みソフトウェアパッケージが最も多くのディスク容量を使用しているかを示す最も基本的なコマンドラインは、おそらく

aptitude search --sort '~installsize' --display-format '%p %I' '~i' | head

だからそれを分解しましょう:

  • --sortパッケージの並べ替え順序であり~installsizeパッケージの並べ替えポリシーを指定します
  • installsizeは「インストール済み(推定)インストールサイズ」を~意味し、前の部分は降順で並べ替えを意味します(すべての並べ替えポリシーのデフォルトは昇順であるため)。
  • --display-formatを変更し<you guessed :->ます。フォーマット文字列は '%p %I'伝えaptitude出力パッケージ名は、インストールのサイズに。
  • '~i'aptitudeインストール済みパッケージのみを検索するように指示します。
  • あなたが持っていない限り...と、非常に少数のインストールされたパッケージを(私のちょっと-一般的なDebianのワークステーションは、2400年より優れている)、あなたはパイプにしたいheadか、lessまたはファイル、または多分ちょうどwc -lどのように多くの行を参照するためにaptitude帰国されます。

あなたもしたいかもしれません

  1. aptitude表示時に使用する行幅を(文字で)指定します--width <your desired integer value/>aptitudeデフォルトでは、端末の幅であると思われますが、間違った推測をしたり、ファイルなどに書き込みたい場合があります。
  2. 書式文字列でより多くの情報を表示するか、フィールド幅を変更します。たとえば、拡張フォーマット文字列が'%30p %I %r %60d'表示されます

    • %30p :フィールド幅= 30文字のパッケージ名
    • %I :推定インストールサイズ
    • %r :「逆依存カウント」:このパッケージに依存する他のインストール済みパッケージのおおよその数
    • %60d :フィールド幅= 60文字のパッケージの短い説明

出力フィールドに変更が表示されない場合は、おそらくを設定する必要があることに注意してください--width

...そして、{interactive、TUI}でこの種のこともできますaptitude。たとえば、表示形式を設定するには、

  • クリックするか、[オプション]-> [設定]に移動します。
  • パッケージビューの表示形式までスクロールします
  • %I希望する位置に現在の値を追加します

対話形式aptitudeでインストール済みパッケージに検索を制限するには、

  • プレスl(小文字L
  • ~iダイアログに入力します

インタラクティブaptitudeでインストール済みサイズでソートするには、

  • プレスShift-S(大文字S
  • installsizeダイアログに入力します

参照:


それを行う方法があるかどうかはわかりませんが、常にサイズをkBで印刷するのは良いことです。
デロバート14年

@derobertは、aptitudeの出力で空白を制御する方法を探していました。また、サイズの出力を変更する方法がないようです。
Braiam

@Braiamはい、削除すると獲得できるスペースの合計はいくら*texlive*ですか?
テルドン

@terdon mm ...ではaptitude -s remove '?and(texlive,~i)'十分ではないでしょうか?また、特定のパッケージにユーザータグを追加して、それらを(タスクのように)全体として操作できるようにすることもできます。
Braiam

9

wajigをインストールしたくない場合。誰もがdebian-goodiesをインストールしていると思います:

dpigs              - Show which installed packages occupy the most space

wajigにはpython 3が必要です。これは40MBです。debian-goodiesにはpython 2.6以降が必要なので、700kbが追加されます。これまたはJosephHの答えが最高です!
ティムオブライエン

dpigs実際には、と同じ結果が得られることに気付きましたdpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head。これは、インストールされているパッケージのうち、最も多くのスペースを占めるトップ10です。それでも、dpigsシンプルで短いです。
clearkimura

8

まず、baobabsudo apt-get install baobab)のようなツールを使用して、そのスペースが使用されている場所を示します。

ここに画像の説明を入力してください

これにより、グラフィカルな概要がわかりやすくなり、スペースを占有しているものを絞り込むことができます。以下を使用して、コマンドラインでこの情報を取得することもできますdu

$ sudo du -ch /

これをパススルーしてsort(GNUを想定しsort、Debianの場合)、ディレクトリサイズでソートします。

$ sudo du -ch / | sort -h

次のステップとして、このコマンドで特定のパッケージが使用しているスペースを確認できます。

$ sudo apt-get --assume-no --purge remove "PACKAGE_NAME" | grep "be freed" | 
   awk '{print $4, $5}' 

たとえば、私のシステムでは、すべてのtexliveパッケージを削除すると1,502 MBが解放されます。

$ sudo apt-get --assume-no --purge remove "texlive*" | grep "be freed" | 
   awk '{print $4, $5}' 
1,502 MB

最後に、次のコマンドを使用して、インストールされているすべてのパッケージに関するこの情報を取得できます。

$ for i in $(dpkg -l | awk '($1=="ii"){print $2}'); do  
    echo -e "$i\t"$(sudo apt-get --assume-no --purge remove "$i" | 
                    grep "be freed" | awk '{print $4, $5}'); 
  done


3

他の答えに追加するには、コマンドラインが好きなら、古き良きを使用することができます durep

# durep -td 1 /etc                         # or -td 2
[ /etc   319.4K (60 files, 43 dirs) ]
  90.2K [########                      ]  28.26% apache2/
  27.5K [##                            ]   8.62% apt/
  23.7K [##                            ]   7.43% mime.types
  19.7K [#                             ]   6.18% cron.daily/
  18.7K [#                             ]   5.87% services
  18.0K [#                             ]   5.64% security/
  14.7K [#                             ]   4.61% init.d/
  13.2K [#                             ]   4.13% ssl/
  11.1K [#                             ]   3.48% ld.so.cache
   9.0K [                              ]   2.81% locale.gen
   7.8K [                              ]   2.43% pam.d/
   4.5K [                              ]   1.42% default/
   4.3K [                              ]   1.35% skel/
   2.9K [                              ]   0.92% locale.alias

あなたはおそらくスペースを解放することができます localepurge

# dpkg-reconfigure localepurge
# localepurge
localepurge: Disk space freed in /usr/share/locale: 26160 KiB
localepurge: Disk space freed in /usr/share/man: 1304 KiB

Total disk space freed by localepurge: 27464 KiB

最後に、アイコンとフォントを取り除くことができますが、これは多くのスペースを必要とする場合があります。このウェブサイトで詳細を見る

https://ownyourbits.com/2017/02/18/squeeze-disk-space-on-a-debian-system/

(ownyourbitsから抽出した例)


dpkg-reconfigure localepurgelocalepurgeパッケージが利用できないことを訴えます。
ロルフ

2

リストにさらにいくつかのツールを追加して、私はいつも自分のシステムで使用debfosterdeborphanています。アップグレード後にぶらぶらしている古い依存関係を探し出すのに最も役立ちます。

apt-get autoremoveすばらしいですが、すべてを取得できるわけではなく、インストールマークに従っているため、何を保持したいかを常に把握しているとは限りません。apt-markただし、使用することで、ある程度まで指示することができます。

以下も確認してください:https : //wiki.debian.org/ReduceDebian


0

これはツールの素晴らしいコレクションですが、KDE ​​/ QT Filelightを追加しますが、これは他のGUIディスクスペース使用ツールに似ていますが、トピックタイトルに対する文字通りの答えではありません。

このスレッドの質問を文字通り、つまり、システムの最大のパッケージとは、原則として次のとおりです。

libreofficeパッケージスイートは単一のパッケージではありませんが、非常に大きなものです。

Linuxカーネルと関連するヘッダーパッケージは2番目に来ると思いますが、ほとんどのシステムが持っている傾向がある複数のカーネルをインストールしている場合、それぞれが約135 mBのディスクスペースを持っていると思いますが、おおよそ、毎年大きくなります。無料でないビデオドライバーを使用する場合は、関連するドライバーパッケージ/ファイルもあります。libreofficeの場合と同様に、各カーネルは実際には2つまたは3つのパッケージ、イメージ、ヘッダー、およびドライバーパッケージで構成できるため、パッケージサイズごとのリテラル数は実際にはそれほど正確ではないことに注意してください。

その後、Debianのパッケージプールには私が知っている膨大な数の巨大なパッケージはありません。

ルートパーティションが、パッケージを削除して縮小する方法を考え始めるところまで、ルートパーティションが十分に大きくなったら、一般的には、より大きなルートパーティションに移動/サイズ変更する時が来たと思います。

もちろんapt-get cleanを最初に実行します。キャッシュされたすべての.debファイルを削除しますが、それを削除すると、2つのカーネルを除いて、まだ十分なスペースがない場合はそれ以上ですクリーンアップなどは、ルートパーティションスペースの近くで実行されているレッドフラグであるため、パーティションサイズを増やすのが実用的です。アップグレード。削除されたパッケージから残った設定ファイルをパージアクションで削除しても、ディスク領域が小さいため、ディスクスペースを取り戻すという点ではまったく役に立ちませんが、ときどき削除するのは良いことですが、そうすべきではありません。意味のあるディスク容量を実際に取り戻したと間違われることはありません。

apt-get auto-removeも悪くありませんが、削除されるパッケージが間違っている場合があるので、aptにアイテムを削除させる前に、そのリストを注意深く確認してください。技術的には、そのリストを削除する方が良いでしょう。そうすれば、設定ファイルを同時に削除したり、削除したり自動削除したりできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.