gapy21 |
|
Темы:
12
Сообщения:
67
Участник с: 30 июня 2012
|
При pacman -Syu error: failed to commit transaction (conflicting files) (система свежая, только установленная.) error: could not prepare transaction error: failed to commit transaction (conflicting files) package: /path/to/file exists in filesystem Errors occurred, no packages were upgraded. Почему это происходит: pacman при обнаружении конфликтующих файлов, по умолчанию, не будет их перезаписывать автоматически. Это не ошибка, так сделано специально. Вопрос решается тривиально. Сначала проверьте не принадлежит ли файл другому пакету: (pacman -Qo /path/to/file). Если принадлежит - создайте отчет об ошибке. Если проблемный файл не нужен другим пакетам - переименуйте его и перезапустите команду обновления. Если в дальнейшем проблем не возникнет, то старый файл можно удалить. Если программа была установлена вручную, без использования pacman или его оболочек, вам нужно будет удалить программу и все ее файлы, а затем выполнить установку при помощи pacman. Информация, о каждом установленном файле, храниться в файле с метаданными пакета /var/lib/pacman/local/$package-$version/files. При повреждении этого файла (может быть пустым или отсутствовать), во время обновления пакета, и будет получена ошибка - “file exists in filesystem” (“файл существует в файловой системе”). Обычно такие ошибки возникают во время установки или обновления всего лишь одного пакета, поэтому вместо ручного переименования или удаления конфликтующих файлов, принадлежащих данному пакету, выполните pacman -S –force $package, после этой команды pacman принудительно перезапишет эти файлы. Никогда не запускайте pacman -Syu –force. В моем случае нужно pacman -Syu –force. но этого не советуют… что делать?( |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Если в данном случае советуют, то значит именно это обновление именно этого пакета нужно делать так. Вернее всего будет обновить этот пакет с ключом –force отдельно, а потом все остальные, но уже без –force |