web-dev-qa-db-ja.com

Msys2にpaccacheをインストールして、インストーラーのストレージをクリーンアップします

私は、Win10の下で私のポータブルMsys2から多数のおそらく役に立たないインストーラー(私は現在3.5Gbを「固定化」しています)を取り除くことを意味します。少なくとも一部のインストーラーについては、おそらく最後のバージョンを保持します。

これを行うには、paccacheをインストールすることを意味します。

$ pacman -S paccache
error: target not found: paccache

OTOH、私は見つけました https://github.com/Alexpux/MSYS2-pacman/blob/master/contrib/paccache.sh.in

これをどのように使用すればよいですかpaccache

paccacheを使用することはと同等です

$ cd /var/cache/pacman/pkg/
$ rm python3-pip-10.0.1-1-any.pkg.tar.xz
$ rm ...

より用途が広く/微調整された方法で、または追加のアクションを実行しますか?

paccacheスクリプトはすでに/usr/bin/paccacheに配置されています。これは、msys2/mingw-w64ツールチェーンのデフォルトのパッケージマネージャーであるpacmanを使用してmsys2インストーラーによってインストールされます。詳細については、 msys2-packages/pacman リポジトリを参照してください。

1
Biswapriyo

documentation によると、PaccacheスクリプトはPacmanパッケージ自体によって提供され、/usr/bin/paccacheにあるため、インストールする必要はまったくありません。

その使用法は次のとおりです。

Pacman-contribパッケージ内で提供されるpaccacheスクリプトは、デフォルトで最新の3つを除いて、インストールおよびアンインストールされたパッケージのキャッシュされたバージョンをすべて削除します。

# paccache -r

保持する最新バージョンの数を定義することもできます。過去のバージョンを1つだけ保持するには、次を使用します。

# paccache -rk1

uスイッチを追加して、paccacheのアクションをアンインストールされたパッケージに制限します。たとえば、アンインストールされたパッケージのキャッシュされたバージョンをすべて削除するには、次を使用します。

# paccache -ruk0

その他のオプションについては、paccache -hを参照してください。

パッケージを使用するためのチュートリアルは、記事にあります
Arch Linuxでパッケージキャッシュをクリーンアップするための推奨される方法

ドキュメントはすべてLinux用であるため、WindowsでMsys2を実行している間は、一部のドキュメントがご使用の環境に適用されない場合があります。

paccachermコマンドの束と同等である場合、パッケージ MSYS2-pacman は次のコードで終了します。

if (( delete )); then
    printf '%s\0' "${candidates[@]}" | runcmd xargs -0 rm "${cmdopts[@]}"
    [...]
fi

つまり、はい、それが行うのはrmコマンドを発行することだけです。

2
harrymc

paccacheが見つからないという問題は単純でした。何らかの理由で、paccacheが見つかりませんでした(pacc + tab-completionを試しても、paccache、次に_which paccache_)。キーは このコメント (後で answer として追加)によって与えられました。これは、私がすでにpaccacheを持っていることを示しています。いくつかのデータベースを更新する必要があったかもしれません(確かに、少なくともpkgfile、以下を参照)。

私は最初にパッケージpaccachepaccacheを見つけ、次にパッケージ_pacman-contrib_で 別のパッケージとしてpacmanから見つけることを期待していました。しかし、_pacman-contrib_は見つかりませんでした。私は間違った方法で検索していたに違いありません(または、数日前に持っていたものと比較していくつかのデータベースが更新されました、私にはわかりません)。

_$ pacman -Q pacman
pacman 5.1.2-2
$ pacman -Q pacman-contrib
pacman 5.1.2-2
_

そしてまた、

_$ pkgfile -s /usr/bin/paccache
error: No repo files found. Please run `pkgfile --update'.
$ pkgfile --update
:: Updating 3 repos...
  download complete: msys                 [   951.1 KiB  61.2K/s  2 remaining]
  download complete: mingw32              [     3.5 MiB  81.6K/s  1 remaining]
  download complete: mingw64              [     3.5 MiB  73.1K/s  0 remaining]
:: download complete in 49.44s            <     8.0 MiB   165K/s  3 files    >
:: waiting for 1 process to finish repacking repos...
$ pkgfile -s /usr/bin/paccache
msys/pacman
$ pacman -Qo paccache
/usr/bin/paccache is owned by pacman 5.1.2-2
_

利用可能になったpaccacheの使用方法については、以前、それらを含むいくつかの優れたリンクを見つけました harrymcによる投稿

したがって、以下を除いて、すべてが明確になりました。

  1. (あいまいな?)説明pacman対_pacman-contrib_。

  2. paccacheが、rmコマンドのみを置き換える微調整された方法とまったく同じかどうか。