Я установил свой собственный пакет, содержащий кучу файлов.
При повторном запуске 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-пакетов, поэтому не могу дать никаких советов по ним.