Я получаю следующую ошибку из сценария, который выполняет следующие действия:
- монтирует изображение локально с помощью команды
mount
- применяет файл исправления к смонтированному файлу system
- отключает файловую систему с помощью команды umount
на шаге 2 Я получаю 3 ошибки, например Hunk #1 FAILED at 1.
, для двух из них, в нем говорится, что причина в том, что файл уже существует, и патч пытается создать новый файл. Третья ошибка - Hunk #1 FAILED at 3.
и не указывает причин для отказа. Итак, я проверил несколько вещей:
- Файлы, которые он пытается создать, не существуют, когда я смотрю на монтирование до применения патча. чтобы быть более уверенным, я поставил точку останова в скрипт непосредственно перед применением патча и проверил смонтированную файловую систему.
- Когда я проверяю файлы после запуска скрипта, все 3 патча действительно успешно применили свои изменения
поэтому я уже смотрел на этот ответ здесь , но ответ, который он дает, похоже, не объясняет, что происходит. Может ли кто-нибудь объяснить мне такое поведение?
ОБНОВЛЕНИЕ:
Файлы, которые вызывают эту ошибку, находятся в одном каталоге: usr/lib/systemd/system
и ранее в патче похожие файлы перечислены как исправляется в другом каталоге: lib/systemd/system
Поэтому мне интересно, обновляется ли каким-то образом путь usr
, когда применяются эти исправления, которые затем конфликтуют с более поздними исправлениями. Однако ни один из каталогов в пути к файлу, похоже, не связан с символической ссылкой, поэтому я не знаю, как это будет происходить
ИСПРАВЛЕНИЕ:
lib
- это символическая ссылка на usr/lib
Так что это определенно проблема. Спасибо, что потратили время, чтобы посмотреть на это