rpm --upgrade того же пакета приводит к конфликтам файлов

rpm --upgrade того же пакета приводит к конфликтам файлов

Я установил свой собственный пакет, содержащий кучу файлов.

При повторном запуске rpm --upgradeвыдается множество ошибок:

File ABC from install of mypackage-1.0-0.i386 conflicts with file from package mypackage-1.0-0.i386

RPM завершает работу с кодом ошибки 5.

Но это тот же пакет с тем же номером версии! Разве не должно быть написано "уже установлено" или что-то в этом роде? Что мне нужно сделать с файлом спецификации или командой обновления rpm, чтобы избежать этой проблемы?

Бег rpm --upgrade --replacefilesговорит: "Пакетмойпакет-1.0-0.i386уже установлено", с кодом выхода 5

(Мне не хочется заменять файлы, если они не изменились...

Некоторые сообщения об ошибках

решение1

У вас есть несколько вариантов. Самый простой — увеличить версию и/или выпуск при сборке нового пакета, чтобы rpm -Uкоманда (обновления) работала нормально. Если вы не хотите этого делать, вы можете использовать rpm -U --replacefiles --replacepkgsдля эффективной переустановки пакета. Третий вариант — удалить пакет перед установкой «нового».

Во всех этих случаях все файлы, которые являются частью обычного paylod (т. е. не помечены как noreplaceфайлы конфигурации), будут заменены более новыми версиями. Так работает RPM. Если вы хотите пойти по пути обновления только того, что изменилось, вам нужно будет рассмотреть возможность создания пакетов DRPM (Delta RPM), которые содержат только отличия от предыдущей версии. Это потребует от вас увеличения номера версии и/или выпуска при пересборке. Я никогда не делал дельта RPM-пакетов, поэтому не могу дать никаких советов по ним.

Связанный контент