[временное РЕШЕНие]pacman ОШИБКА НЕ УДАЛОСЬ ОТКРЫТЬ ФАЙЛ /desc

Опрос

Было ли вам полезно содержание темы ?
Да
Нет
Bendalf
мышей ловить
Маны смотрим
поиск по слову
man -Kk hook
alpm-hooks (5) - alpm hook file format
man alpm-hooks

Интернет
https://www.archlinux.org/pacman/https://www.archlinux.org/pacman/#_documentationhttps://www.archlinux.org/pacman/alpm-hooks.5.html

Тоже и в другой теме пользуйтесь поиском
у вас же в конфиге указан адрес сайта
# Authors: © grml-team (grml.org)
# Bug-Reports: see http://grml.org/bugs/

поиск "arch linux grml zsh" и pacman -Ss zsh grml
Bendalf
пастебин чото глючит.
lostfiles = https://cloud.mail.ru/public/32iy/4AW6yRcxY
тоже норм. есть кое какие вопросы, но в общем ты, вроде, нормально починил базу.
/usr/java/jre1.8.0_231 ручками ставил?!!

Bendalf
подскажите пожалуйста что проще сделать ?
может https://wiki.archlinux.org/index.php/Pacman_(Русский)/Tips_and_tricks_(Русский)#Удаление_неиспользуемых_пакетов ?
ну я делаю pacman -Qdt ~ раз в 3 месяца, но избавиться от ничейных файлов найденных lostfiles пакменом у тебя не получится!!! да и удалять их нужно с умом...
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
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 пакет

в общем как говорят в народе - ССЗБ
red
Operation = Install
у меня не было. спасибо что вы мне указали на это всё.
исправил рук и транзакшн.
У меня всегда было
Exec = /usr/bin/paccache -ruk1 и Operation = Upgrade . один раз написал и потом не редактировал до сегодня.
рук0 - хз. не помню откуда взялось. архив есть. проверю. может напутал.
борьба с пакманом поднадоела :)

перешел в папку с кэшем
find . -type d -empty
нашло пустую ca-certificates- и xorg-font-utils

find . -type d -empty -exec rmdir{} \; произвёл удаление. визуально убедился.
базу починил как вы написали.

red
что отличаются Description
набирал хук руками. и мне было лень печатать Description целиком.

хуки были включены после появления ошибок . но вначале я набивал команды по чистке вручную. не экспериментировал. спопугаил вики.
насчет претранзакшн признаю -- я накосячил 100 пудово. Только сегодня до конца разобрался со всем этим.
поэтому мне кажется спорным утверждение насчет ССЗБ
С уважением, .
nafanja
/usr/java/jre1.8.0_231 ручками ставил?!!
я просто распаковал архив, скачанный у авторов. они так и пишут- распакуйте туда-то. и на этом всё.
файлы ghc появились после stack-upgrade из самой оболочки стак .
в рут - там просто резервная копия лежит. фирмваре интел, амд, syslinux были помещены туда простым копированием с компакт диска.
у меня на тот момент не было нормальной сетевой карты для линукс.

nafanja
я делаю pacman -Qdt ~ раз в 3 месяца,
спасибо нарисую хук по времени. как-то так. скорее всего не правильно.
 pacman-key-death-pkg.service
[Unit]
Description=удаление мертвых пакетов pacman -Qdt ~ раз в 3 месяца
After = network-online.target nss-lookup.target
Wants= network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/pacman -Qdt
StandartOutput=null
StandartError=journal
PrivateTmp=yes
PrivateDevices=yes
NoNewPrivileges=yes
------------------------

pacman-key-death-pkg.timer
[Unit]
Description= удаление мертвых пакетов pacman.  pacman-key-death-pkg.timer
[Timer]
OnCalendar=monthly
AccuracySec=3m
[Install]
WantedBy=multiuser.target
С уважением, .
Bendalf
ExecStart=/usr/bin/pacman -Qdt
ЫЫЫ, ты даже не понял что оно делает, а уже сервис пишешь.
данная команда просто выводит список ненужных пакетов которые были установлены как зависимости, потом нужно посмотреть нужны ли эти пакеты лично тебе и если не нужны, то удалить соответствующей командой.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
Bendalf
У меня всегда было
Exec = /usr/bin/paccache -ruk1
тогда выходит несоответствие с написанным вами хуком выше, где стоит
Exec = /usr/bin/paccache -ruk0
ладно, неважно, кто-то где-то что-то напутал, бывает
просто на будущее установите в хуке для paccache дополнительно ключ -v чтобы он стал поразговорчивей в консоли, может что-то и прояснится если обратно такое случится
nafanja
ЫЫЫ, ты даже не понял что оно делает, а уже сервис пишешь.
чтобы позднее обдумать, оно надо или это чушь. и как улучшить чтоб автоматом всё делалось.
если сразу не записать завтра уже забуду.
С уважением, .
red
в хуке для paccache дополнительно ключ -v
рук0 - хз. не помню откуда взялось. архив есть. проверю. может напутал.
спасибо.
хорошо, я так и сделал. борьба с пакманом надеюсь закончилась.

оффтоп.
планирую устанавливать ещё после разбирательства с xorg+virtualbox и интересно в qemu для win попробовать линукс когда-то.
я уже пообщался в чате с экспертом, всё записал вблог. там про пакман 139 просмотров. и про хорг 164. значит не я один наступил на грабли.
С уважением, .
Bendalf это не совсем красиво исправлять свои посты(например) в середине темы никак не помечая важные исправления, особенно тогда когда на информацию в данном посте сослались другие.
кроме всего это и неудобно, попытайся сторонний наблюдатель(или же сам спустя время) разобраться в теме быстро запутается в противоречивой информации. Это как переписывание истории задним числом.
Если сильно нужно то обычно ставят upd или что-то подобное и пишут что исправили или к примеру перечеркивают неверное и пишут ниже исправленную версию если это необходимо
 
Зарегистрироваться или войдите чтобы оставить сообщение.