Установите paccache в Msys2, чтобы очистить хранилище установщиков

Я имею в виду избавиться от большого количества, вероятно, бесполезных инсталляторов (у меня в настоящее время 3.5Gb "обездвижен") с моего Portable Msys2 под Win10. Я, вероятно, сохраню последнюю версию, по крайней мере, некоторых установщиков.

Для этого я имею в виду установить paccache,

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

ОТО, я нашел 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 ...

в более универсальном / тонко настроенном виде, или он выполняет какие-либо дополнительные действия?

3 ответа

Решение

paccache скрипт уже размещен в /usr/bin/paccache, Он устанавливается установщиком msys2 с помощью pacman, менеджера пакетов по умолчанию в наборе инструментов msys2/mingw-w64. Для получения дополнительной информации см. Репозиторий msys2-packages/pacman.

Проблема не найти paccache было просто. Я почему-то не нашел paccache (Я не помню, пытался ли я вообще pacc+ таб-доработка, которая дала бы мне paccache, а потом which paccache). Ключ был дан этим комментарием (добавлен как ответ позже), который указал, что у меня уже был paccache, Возможно, мне потребовалось обновить некоторые базы данных (наверняка, по крайней мере, pkgfile, увидеть ниже).

Я сначала ожидал найти paccache в упаковке paccache а затем в упаковке 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 только команды

Согласно документации, скрипт Paccache предоставляется самим пакетом Pacman и находится в/usr/bin/paccacheтак что вам не нужно устанавливать его вообще.

Его использование описывается следующим образом:

Скрипт paccache, предоставляемый в пакете pacman-contrib, по умолчанию удаляет все кэшированные версии установленных и неустановленных пакетов, кроме самых последних 3:

# paccache -r

Вы также можете определить, сколько последних версий вы хотите сохранить. Чтобы сохранить только одну предыдущую версию, используйте:

# paccache -rk1

Добавьте переключатель u, чтобы ограничить действие paccache для неустановленных пакетов. Например, чтобы удалить все кэшированные версии удаленных пакетов, используйте следующее:

# paccache -ruk0

Увидеть paccache -h для большего количества вариантов.

Учебник по использованию пакета находится в статье
Рекомендуемый способ очистки кэша пакетов в Arch Linux.

Поскольку документация полностью для Linux, в то время как вы используете Msys2 в Windows, часть документации может не относиться к вашей среде.

На ваш вопрос, если paccache эквивалентно только куче rmКоманды, пакет MSYS2-pacman заканчивается кодом:

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

Так что да, все, что он делает, это выпуск rm команды.

Другие вопросы по тегам