msys2のパッケージキャッシュの削減

msys2を入れているPCのHDDの空き容量を増やすために、
コマンド
paccacheを使おうとしたところ入ってなかった。

$ pacman -S pacman-contrib

これでpaccachepactreeが入る。
以前に
pactreeを使った気がしていたけれど他のPCだったのかも?

対象のPCではmsys2を入れて以来、パッケージのキャッシュを消したことは無いが、
msys2自体をあまり利用していないこともあり、それほど頻繁にパッケージを更新したりしていない。
そもそも入れているパッケージはシステムごとに違うので以下は一つの例。

まずは既にアンインストールしたパッケージのキャッシュを消してしまおう。

$ paccache -d -uv

dry runで確認すると9パッケージ、4.06MiBが対象だったので、さくっと削除。

$ paccache -r -uv

次にインストールしているパッケージの過去のキャッシュを削除する。
paccacheは世代や日付で削除や移動する対象を選択できる。
今回はとりあえず10世代前(デフォルトの3世代前よりとても多い)まで残してみよう。
先ほどと同様、消す前にdry runでどのくらい削減できるのか確認。

$ paccache -d -k 10

==> finished dry run: 157 candidates (disk space saved: 6.03 GiB)

かなりキャッシュに溜まっていることが分かる。
ちなみに、オプション
-kを付けずにデフォルトの3世代前まで残すと、

$ paccache -d

==> finished dry run: 515 candidates (disk space saved: 9.39 GiB)

となり、削除候補数がかなり増え、3GiB超さらに削減できることになる。
が、とりあえず6GiB削減してしまおう。

$ paccache -r -k 10

本当はオプション-vを付けて何が削除されるのか、
dry runする時に確認すべきかもしれないけれど、候補数が100を超えるほど多いし、
10世代以上も前のパッケージとかなら有無を言わさず消してしまっても問題ないだろう。
まず間違いなく今後使うことはないと思われる。

ということでHDDの空き容量がけっこう増えた。