Arch Linuxでpacmanがインストールした古いソフトウェアパッケージを削除する方法は?

Arch Linuxでpacmanがインストールした古いソフトウェアパッケージを削除する方法は?

私は最近Arch Linuxをインストールしましたが、比較的早く多くのストレージスペースを使用していることがわかりました。何らかの理由で、わずか2週間で17GBを使用しました。私は大量のソフトウェアをインストールしていないので、以前のすべてのパッケージがどこかに維持されていると確信しています。

これをサポートするために、パッケージをインストールしてパッケージをアンインストールしてから再インストールすると、パックマンはソフトウェアを再ダウンロードせずに解凍して再インストールすることがわかりました。

基本システムをインストールした後、追加のソフトウェアをインストールするまで約2GB程度を使用していたようです。それ以来、私はMatlab、Skype、Wine、その他の小さなプログラムだけをインストールしました。もちろん、欠けているライブラリなどもインストールしましたが、15GB未満です。

私は完全に間違っていますか?それとも、新しいバージョンをダウンロード/アップグレードするとき、Archは古いパッケージを絶対に削除しませんか?

それでは、使用していないパッケージをどのように削除できますか?

また、インストールされているパッケージを削除するときは、次のものを使用します。pacman -R ...

答え1

いいえ、pacmanはキャッシュ()から古いパッケージを削除しないため、/var/cache/pacman/pkg時間の経過とともにいっぱいになる可能性があります。

キャッシュを消去するために使用できる2つの方法があります。無差別代入方法pacman -Sc:

-c, --clean は、
インストールされなくなったキャッシュパッケージから削除し、現在使用していないデータベースを同期してディスク領域を解放します。パックマンはパッケージをダウンロードするとキャッシュディレクトリに保存されます。また、ダウンロードした各同期データベースはデータベースを保存し、構成ファイルpacman.conf(5)から削除しても削除されません。インストールされなくなったパッケージのみを削除するには --clean スイッチを 1 つ使用し、キャッシュからすべてのファイルを削除するには 2 つを使用します。どちらの場合も、[はい]または[いいえ]を選択して、パッケージおよび/または未使用のダウンロードデータベースを削除できます。

あるいは、より微妙なアプローチのために、pacman-contribに含まれるユーティリティの1つを使用することができますpaccache

paccacheは、パックマンパッケージターボールを含むディレクトリから削除される量とコンテンツを制御するのに役立つさまざまなオプションを備えた柔軟なパックマンキャッシュクリーンアップユーティリティです。

デフォルトでは、インストールされてpaccache -rいるパッケージの最後の3つのバージョンを除くすべてのバージョンが削除されますが、スイッチを使用してこの番号を変更できます-k, --keep-d, --dryrun変更をプレビューできるトグルもあります。この-m, --move <dir>オプションを使用して、パッケージを選択した別のディレクトリに移動することもできます。すべてのスイッチを確認またはpaccache -h訪問してください。paccache --help

pacman-contribパッケージには、パッケージ管理に役立つ多くのユーティリティがあり、詳細を確認し、動作を理解し、Archをより簡単に実行できるユーティリティがあります。次のリストから完全なリストを見ることができます。

pacman -Ql pacman-contrib | awk -F"[/ ]" '/\/usr\/bin/ {print $NF}'

答え2

パッケージキャッシュはにあります/var/cache/pacman/pkg/

メモ: pacmanパッケージは2018年に更新され、以下のスクリプト/ツールをpacman-contrib使用するにはインストールも必要です。paccache

する:

paccache -d

次の手順を実行し-dryrun、次にユーティリティを実行するときに何が削除されるかを確認するには:

paccache -r

キャッシュされたパッケージを削除します。 17GBは急なようです。ランアウェイログがないことを確認してください。する:

du -h /var/log

または単に:

du -h /var

何が起こっているのかをより一般的に理解してください。

答え3

私は強く使用することをお勧めしますpaccache変えるpacman -Sc。削除されたパッケージバージョンを選択的に削除するための非常に効果的なフラグもあります-u。私が推奨するフラグはpaccache次のとおりです(paccache v5.0.2の一部)。

  • -d--dryrun:テストを実行し、候補パッケージのみを探します。
  • -r, --remove: 候補パッケージの削除
  • -u--uninstalled:削除されたパッケージのみ
  • -k--keep <num>:各パッケージの「num」をキャッシュに保持します(デフォルト:3)。

例: 削除されたパッケージの残りのキャッシュされたバージョンを確認する

paccache -dvuk0

答え4

pacman -Scc要求された操作を実行しますが、お勧めできません。 ~からウィキペディア

次のコマンドを使用してキャッシュフォルダを完全に消去することもできます。パックマン-Sccしかし、これを行うと、上記の方法に加えて、必要に応じてパッケージがキャッシュフォルダから直接再インストールされるのを防ぎ、強制的に再ダウンロードする必要があるため、悪い習慣と見なされます。緊急に多くのディスク容量が必要な場合を除き、使用しないでください。

しかし、私はパッケージを削除するときにpacman -Rnscパッケージの依存関係とそれに依存するパッケージも削除するので、この方法を好みます。いつものように、どのパッケージが削除されるのかをよく読んでください。システムを簡単に使用できなくなるからです。

関連情報