Кеш pacman

Добрый день. При установке системы разметил под root около 20 Гб (маленький ssd). В принципе этого более чем хватало при периодической чистке кеша pacman. Но сейчас его уже что-то слишком часто становится надо чистить. В связи с этим ищу решение проблемы. Есть sd карта, которая монтируется при старте системы. Как будет правильнее / наименее проблемно при дальнейшей эксплуатации - выделить на карте отдельный раздел и монтировать на него /var/cache/pacman/pkg (слабо себе при этом представляю - возможно, могут какие-то сложности возникнуть?) или можно просто на карте создать отдельную папку и в pacman.conf изменить CacheDir? Вопрос глупый, но на грабли случайно наступить не хочется. Спасибо.
Вам кеш нужен принципиально? У меня:
/etc/pacman.conf
-----
CacheDir     = /tmp/pacman_pkg/
/etc/pacman.d/hooks/cache_clean.hook
-----
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = *
[Action]
Description = Cleaning pacman cache...
When = PostTransaction
Exec = /usr/bin/paccache -rqk0
При необходимости пакеты даунгрейдить так: https://wiki.archlinux.org/index.php/Arch_Linux_Archive
Aivar
Вам кеш нужен принципиально? У меня:

Exec = /usr/bin/paccache -rqk0
только нужно не забыть установить pacman-contrib

еще как вариант, если ОЗУ не резиновое, обновляете нечасто, и сразу удалять кеш не хочется(мало ли что может сломаться сразу после обновления) то можно просто задать время для чистки в paccache.timer, ну или оставить по дефолту(каждую неделю):
sudo systemctl enable paccache.timer --now
сама чистка пакетов из кеша будет происходить по дефолту, то есть оставлять последние три версии пакета, чтобы чистить полностью(как у Aivar) нужно подправить paccache.service который и будет запускаться вышеупомянутым paccache.timer:
sudo systemctl edit paccache.service
добавляем туда строки:
[Service]
ExecStart=
ExecStart=/usr/bin/paccache -rqk0
Ещё один, схожий вариант.
Статья.
Сложно представить, какие проблемы могут возникнуть с этой папкой. У меня в локалке три компа с арчем и одна общая папка кеша, расшаренная через SMB — никаких проблем.
Всем спасибо. Особенно за ценный опыт от pavelchavyr. Вчера вечером настроил - вроде все работает. Попутно разобрался с f2fs. Совсем от кеша избавляться не хотелось - бывали пару раз ситуации, когда косяки обнаруживались при отсутствии нормального интернета, - поэтому настроил удаление по таймеру. Спасибо.
aragorn22
бывали пару раз ситуации, когда косяки обнаруживались при отсутствии нормального интернета, - поэтому настроил удаление по таймеру
А какой смысл удалять по таймеру? Чтобы освободить место на диске? Так это самое освободишееся место очень быстро можно засратьнять, что чревато крахом очередного обновления.
Логичнее удалять не по таймеру, а непосредственно перед очередным обновлением:
pacman -Sc
pacman -Syyu
Тогда всегда "проверенные" пакеты будут в наличии, и будут зарезервировано место под кэш.
akorop
А какой смысл удалять по таймеру?
ну к примеру если кеш использует несколько машин как у pavelchavyr

akorop
Логичнее удалять не по таймеру, а непосредственно перед очередным обновлением:
pacman -Sc
pacman -Syyu
ну, можно и так, хотя как я понял автор данную процедуру и так часто проделывает, и хотел бы от этого избавиться, а вы предлагаете ему это проделывать постоянно
можно это конечно частично автоматизировать, подправив хук который предложил Aivar, заменив:
When = PostTransaction
Exec = /usr/bin/paccache -rqk0
на
When = PreTransaction
Exec = /usr/bin/paccache -rqk1
оставляя только последнюю версию пакетов, что в принципе тоже неплохо если параллельно делать чистку по таймеру
red
akorop
Логичнее удалять не по таймеру, а непосредственно перед очередным обновлением:

pacman -Sc
pacman -Syyu

ну, можно и так, хотя как я понял автор данную процедуру и так часто проделывает, и хотел бы от этого избавиться, а вы предлагаете ему это проделывать постоянно
Я, вобще-то, имел в виду, что обновление делать при помощи скрипта из этих двух строк, то есть чистить совсем автоматически :)
akorop
Я, вобще-то, имел в виду, что обновление делать при помощи скрипта из этих двух строк, то есть чистить совсем автоматически :)
тогда нужно использовать две 'c' (-Scc), так как одна просто удаляет из кеша только те пакеты которые больше не используются

и кстати там нужно будет еще помучатся, так как если делать просто через --noconfirm то по умолчанию стоит отмена(N) удаления всех пакетов
 
Зарегистрироваться или войдите чтобы оставить сообщение.