а что выводят команды:
$ findmnt -D
$ findmnt -s
Bendalf
Operation = Install у меня точно не было.
может и так, из за неполного вывода трудно судить
и очень даже возможно что сейчас стоит ruk/ruk1/ruk0 если учесть другие фото из этой серии где кеш вроде как не пуст
Bendalf
у меня было ruk , оперейшн было всё время Upgrade, опция все время была ПРЕтранзакшн.
я уже запутался следя за вашими руками[ruk] :)
изначально в хуке написали ruk0, потом сказали что это опечатка и вы всегда использовали ruk1, сейчас пишете что это был просто ruk (по умолчанию -k 3)
хотя это не так важно, ruk[0,1..n] безобиден, но наблюдаемая проблема очень схожа как если бы использовался rk0
Возможно у вас работает еще какой-то сервис по очистке кеша пакмана ? что при накладывании на обновление может портить локальную базу некоторых пакетов
и еще момент, смотрю работая на виртуальной машине вынесли кеш на другой диск который судя по фото занимает размер 186G/345G (53%)
это вы его так используя только арчем забили ? что за диск ? как подключали ? используется с другой системой ?
Bendalf это не совсем красиво исправлять свои посты(например) в середине темы никак не помечая важные исправления, особенно тогда когда на информацию в данном посте сослались другие.
кроме всего это и неудобно, попытайся сторонний наблюдатель(или же сам спустя время) разобраться в теме быстро запутается в противоречивой информации. Это как переписывание истории задним числом.
Если сильно нужно то обычно ставят upd или что-то подобное и пишут что исправили или к примеру перечеркивают неверное и пишут ниже исправленную версию если это необходимо
Bendalf
У меня всегда было
Exec = /usr/bin/paccache -ruk1
тогда выходит несоответствие с написанным вами хуком выше, где стоит
Exec = /usr/bin/paccache -ruk0
ладно, неважно, кто-то где-то что-то напутал, бывает
просто на будущее установите в хуке для paccache дополнительно ключ -v чтобы он стал поразговорчивей в консоли, может что-то и прояснится если обратно такое случится
опечатка постом выше, вместо -ruk1 использовать -rqk1 о чем и писалось в начале
[Trigger]
Operation = Upgrade
Type = Package
Target = *
[Action]
Description = Очистка кеша pacman... [ хук /etc/pacman.d/hooks/clean_cache.hook ]
When = PreTransaction
Exec = /usr/bin/paccache -rqk1
Bendalf вам трудно помогать так как от вас поступает противоречивая информация

как я и думал(удалось воспроизвести) проблема оказалась в хуке пакмана, вернее его необдуманном использованием на стыке PreTransaction и rqk0
расклад примерно следующий: при обновление пакета
Operation = Upgrade
и/или инсталляции
Operation = Install
а также перед непосредственно внесением информации в базу с последующей установкой/обновлением пакета в систему
When = PreTransaction
очищается полностью кеш
Exec = /usr/bin/paccache -rqk0
что во первых приводит к ошибке открытия файла архива пакета из этого самого кеша, а во вторых созданию пустой или очистке папки пакета в локальной базе

по поводу самого хука
первое
изначальный взятый вами хук на сколько я могу судить был отсюда об этом говорит их идентичность за исключением концовки в Description
оригинал
[Trigger]
Operation = Upgrade
Type = Package
Target = *
[Action]
Description = Очистка кеша pacman... [ хук /etc/pacman.d/hooks/clean_cache.hook ]
When = PreTransaction
Exec = /usr/bin/paccache -ruk1
показанная вами версия
[Trigger]
Operation = Upgrade
Type = Package
Target = *
[Action]
Description = Очистка кеша pacman... [ хук /etc/pacman.d/hooks/clean_cache.hook ] от всех версий удаленных пакетов.
When = PreTransaction
Exec = /usr/bin/paccache -ruk0
это видно даже по имени самого хука, по тем ссылкам что вы привели clean_cache.hook встречается только в моём посте, в остальных же cache_clean.hook или clean_package_cache.hook

второе
по поводу "от всех версий удаленных пакетов." это очень верное дополнение, вы явно пытались разобраться в этом не не до конца, это видно по вашему вопросу выше
Bendalf
два Exec можно ? чтобы еще и pacman -Sc после рук0 или это можно в одном екзек через запятую? или пробел?
просто когда я оба два применяю руками, то происшествие случается гораздо реже.
pacman -Sc эквивалентен paccache -ruk0
и для справки
pacman -Scс эквивалентен paccache -rk0
разве что еще pacman -Sc(c) может дополнительно удалить неиспользуемые репозитории

третье
показанный вами хук это явно не то что используется(когда вы выложили ФОТО) в системе, вернее это скорее всего была заготовка, так как явно видно что отличаются Description
и вместо
:: Запуск pre-transaction hooks...
(1/1) Очистка кеша pacman... [ хук /etc/pacman.d/hooks/clean_cache.hook ] от всех версий удаленных пакетов.
выводит
:: Запуск pre-transaction hooks...
pacman - clean - cache
и в добавок еще идет удаление 4-х пакетов из 5-ти устанавливаемых
==> finished: 4 packages remowed (disk space saved: 504.29 KiB)
что примерно соответствует загруженному ранее
Будет загружено: 0,52 MiB
это если еще учесть что из 5-ти загруженных один пакет(фото выше обрезано но похоже так оно и есть) переустанавливается и он не учитывается
то есть похоже на то что в хуке использовалось
Operation = Install

четвертое
в моём посте из другой темы откуда вы взяли заготовку ошибка(опечатка) и вместо -ruk1 необходимо использовать -rqk1 о чем написанно в той же теме постами выше

посему выходит что экспериментируя с хуком пакмана и выставляя разные значения в том числе rk0 при PreTransaction вы запороли часть пакетов в локальной базе, так что даже после отключения хука локальные пакеты в базе которые вы безуспешно пробовали устанавливать/обновлять будут повреждены(пустая папка без файлов с метаданными), да и похоже вы этим хуком(судя по фото) еще ненаигрались

по итогу
вам нужно починить хук и просканировать базу на наличие пустых папок пакетов(если еще остались) после чего удалить их и перезаписать информацию о данных пакетах в локальной базе
pacman --dbonly -S пакет

в общем как говорят в народе - ССЗБ
vasek
когда смотришь на эти конструкции без подготовки, то ни хрена не понимаешь, что это такое и как это получилось …
ну если так рассуждать то
когда смотришь на sed и awk без подготовки, то ни хрена не понимаешь
когда смотришь на скрипты bash без подготовки, то ни хрена не понимаешь
когда смотришь на XXX без подготовки, то ни хрена не понимаешь

что в принципе верно для всего для чего нужна подготовка чтобы понимать
вот так будет нормально
echo "$a" | awk '/^# BEGIN<my tag>$/{i=1;next}/^# END<my tag>$/{exit}i'
общий шаблон
awk '/Tag1/{i=1;next}/Tag2/{exit}i'
indeviral
и так не работает(
хм, не тестировал такой случай, и вправду, если перед самым первым тегом идет текст то он тоже будет выведен
первое что пришло в голову для исправления:
awk '/Tag1/,/Tag2/' | awk '/Tag1/{next}/Tag2/{exit}1'
но думаю можно и короче
vasek
но есть один минус - насколько я понял нужно писать всю строку (# BEGIN<my tag>)
в смысле ? там ведь регулярное выражение и при желании можно укоротить до того что нужно
в общем виде будет
awk '/Tag1/{next}/Tag2/{exit}1'