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

Опрос

Было ли вам полезно содержание темы ?
Да
Нет
Решил красиво под итожить всё обсуждение и оформить как норм статью.

Как я производил установку и изменение конфига пакмана.

такое у меня было с
libxfce4util
libfdk-aac
faad2
java
jdk
xorg-twm 1.0.10-1
и ещё дофига с чем.

у меня ругань на некоторые, которые ранее не были установлены.
возможно это мои кривые руки или кривые руки у кого-то из разработчиков.

Если б это мои ошибки, тогда вообще на все пакеты такое происходило.

РЕШЕНИЕ.

**
Помочь следствию. То есть найти отличия , если таковы имелись
вот что нужно было сделать:
$ find $(pacman-conf DBPath) -not -user root -o -not -group root
$ find $(pacman-conf DBPath) -type d -not -perm 0755
$ find $(pacman-conf DBPath) -type f -not -perm 0644

**
меняем права в конкретной папке
Переходим в папку /var/lib/pacman/local/(имя_пакета)/ , touch desc files mtree , chmod 644 ./*

**
Поменять все права разом.
сначала переходим в папку /var/lib/pacman/ # ./ - означает текущую папку.
chown -R root:root ./
у пакетов без проблем
файлы find ./ -type=f -exec chmod -R 644 {} \; #владелец рут. = rw- r-- r--
папки find ./ -type=d -exec chmod -R 755 {} \; #владелец рут. = drwx r-x r-x
find ./ -type l -exec chown -h root:root {} + # овладеть символическими ссылками.
****upd
починяем базу
pacman --dbonly -S $(< pkglist.txt) или pacman -Qenq | pacman --dbonly -S -
где pkglist.txt был получен так pacman -Qenq > pkglist.txt
***
сменил зеркало потому что началось , когда пользовал mirror.reisenbauer.ee
я не выдумываю. делаю по инструкции миррорлист генератор. ipv4 , https, use mirror status.
результат скармливаю reflector. получаю 10 зеркал.
обычно использую 1, 2 или 3 сверху зеркало.

после этого исчезла ругань во время установки на пакеты, которыми ранее была ошибка. Два обновления системы прошли хорошо.
С уважением, .
Bendalf
touch desc files mtree
хм, тоже вариант, хотя mtree это лишнее он генерируется автоматически
(интересный эффект получается, на отсутствие файла ругается а на пустышки(или битый) нет)

но всё же лучше сделать это по феншую как предложил vs220 в другой теме:
удаляем из локальной базы метаданные(папки) проблемных пакетов, например:
$ sudo rm -r $(pacman-conf DBPath)local/{libxfce4util-4.14.0-1,lsd-0.16.0-1, ...}
затем устанавливаем с принудительной перезаписью файлов:
$ sudo pacman --overwrite=* -S libxfce4util lsd ...
Bendalf
кривые руки у кого-то из разработчиков
В предыдущей теме разжевали: ты, ССЗБ, повредил/удалил локальную базу пакетного менеджера, т.е. информацию об установленных пакетах и их файлах. При чем тут разрабы?
Хотя кому я это пишу...
Bendalf
ОШИБКА НЕ УДАЛОСЬ ОТКРЫТЬ ФАЙЛ /var/lib/pacman/local/(имя_пакета)/desc
Этого сообщения в принципе быть не должно при правильном использовании системы ...

PS - Bendalf, пора переходить на 2-ой уровень - продолжить изыскания с изменением/перемещением файлов в директоиях /etc, /usr

EDIT 1 - хотя /etc/pam.d пока не трогай, оставь на 3-ий уровень
Ошибки не исчезают с опытом - они просто умнеют
Aivar
повредил/удалил локальную базу
я не удалял. только перенес. все по документации делал.
да даже если у удалил одну папку с именем пакета - так оно потом скачалось по новой. сейчас то всё на месте.

Red
затем устанавливаем с принудительной перезаписью файлов:

так оно так же криво и запишет. косяк с выставлением прав.
подобной фигней и rsync периодически грешит.
может я и не прав, но очень похоже что я правильно понимаю.

Aivar
Хотя кому я это пишу…
у вас троллить отлично выходит. а так толку нет.
С уважением, .
Bendalf
Никогда не было и вот опять. теперь с chromaprint
вам просто нужно переустановить все пакеты которые поломались после часа Х, а то будет время от времени вылезать когда подойдут обновления для поломанно-спящих пакетов

апдейт
Bendalf
так оно так же криво и запишет. косяк с выставлением прав.
а при чем здесь права ? вы что не от суперпользователя переносили базу ?
vasek
пора переходить на 2-ой уровень
)
Есть одна команда, которая заменяет кнопку "Сделать зашибись", но я не скажу. ТС сам найдет в тырнетах...
red
Никогда не было и вот опять. теперь с chromaprint
вам просто нужно переустановить все пакеты которые поломались после часа Х, а то будет время от времени вылезать когда подойдут обновления для поломанно-спящих пакетов

chromaprint установил только что. после как исправил предыдущее вручную.

red
переустановить все пакеты которые поломались после часа Х
может подскажете пожалуйста как узнать этот самый час?
chromaprint до этого дня у меня вообще не было. и тех что я перечислил в первом сообщении не было ранее установлено.
red
вы что не от суперпользователя переносили базу ?
я переносил под аккаунтом суперпользователя
UPD
red
$ sudo rm -r $(pacman-conf DBPath)local/{libxfce4util-4.14.0-1,lsd-0.16.0-1, …}
скажите пожалуйста , обязательно ли указывать полное имя или достаточно шаблона типа lsd-* ?
С уважением, .
vasek
перемещением файлов в директоиях /etc, /usr
дак это штатная возможность. многие делают эти папки на разных hdd. но я пока что не рискну.)
red
(интересный эффект получается, на отсутствие файла ругается а на пустышки(или битый) нет)
если в конфиге пакмана выставить строгую проверку подписи , то эти пакеты вообще не ставятся.
С уважением, .
Bendalf
red
переустановить все пакеты которые поломались после часа Х
может подскажете пожалуйста как узнать этот самый час?
если теоретически, не проверял на практике, то
поискать оставшиеся поломанные установленные пакеты в базе, после чего отсортировать их по времени записи на диск и взять самый старый, но так как база переносилась и возможно не раз то это вряд ли поможет если час Х был до этого, разве что можно будет оценочно прикинуть по самой старой версии поломанного пакета

но думаю будет проще просто переустановить все пакеты в системе

Bendalf
я переносил под аккаунтом суперпользователя
тогда не совсем понятна проблема с правами
upd: с какими правами у вас пакеты в базе ?
должно быть
drwxr-xr-x root root для папок
rw-r--r-- root root для файлов

Bendalf
скажите пожалуйста , обязательно ли указывать полное имя или достаточно шаблона типа lsd* ?
да лучше полное имя, вернее имя с версией, а то случайно захватите другой пакет, мало ли появится пакет с именем lsdb

Bendalf
да даже если у удалил одну папку с именем пакета - так оно потом скачалось по новой. сейчас то всё на месте.
удалил одну папку ... оно потом скачалось по новой - да не может оно просто так взять и скачать, у вас выйдет ошибка при установке(напрямую или как зависимость) будет ругань на конфликтующие файлы
попробуйте
$ pacman -S lsd
$ sudo rm -r $(pacman-conf DBPath)local/lsd-0.16.0-1
$ pacman -S lsd
не установит и не обновит, а выдаст ошибку
а вот с --overwrite=* всё пройдет как по маслу

Bendalf
chromaprint до этого дня у меня вообще не было. и тех что я перечислил в первом сообщении не было ранее установлено.
так у вас со всеми новыми пакетами проблемы при установке или только с некоторыми ?
 
Зарегистрироваться или войдите чтобы оставить сообщение.