Установите 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.
Так что теперь все понятно, кроме:
(Неоднозначное?) Описание
pacman
противpacman-contrib
,Будь то
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
команды.