rpm деинсталлируется с предупреждением об отмене связи
Я создал файл спецификации, который может установить / обновить / удалить пакет. Но при удалении он удаляет пакет с предупреждениями
warning: erase unlink of /var/hudson/master/plugins/publish-over-cifs/help/global/username.html failed: No such file or directory
warning: erase unlink of /var/hudson/master/plugins/publish-over-cifs/help/global/timeOut.html failed: No such file or directory
warning: erase unlink of /var/hudson/master/plugins/publish-over-cifs/help/global/remoteRootDir.html failed: No such file or directory
warning: erase unlink of /var/hudson/master/plugins/publish-over-cifs/help/global/port.html failed: No such file or directory
warning: erase unlink of /var/hudson/master/plugins/publish-over-cifs/help/global/password.html failed: No such file or directory
Как я могу решить эту ошибку? Есть ли способ игнорировать такое предупреждение в спецификации файла?
2 ответа
Это исправление, которое я должен был сделать, чтобы устранить предупреждающие сообщения. Это было вызвано rm -rf
который был помещен в %preun
[до удаления] раздел. Вам не нужно иметь какие-либо rm -rf
в вашем файле SPEC. RPM будет неявно и рекурсивно удалять содержимое каждого каталога в каталоге установки. Поэтому, если вы действительно хотите пойти дальше и очистить пустые каталоги, оставшиеся после удаления, добавьте rm -rf <installdir>
под %postun
раздел. Это позаботится о предупреждениях и приведет к чистой деинсталляции, удалив каталог установки после деинсталляции. Проверьте эту статью http://meinit.nl/rpm-spec-prepostpreunpostun-argument-values - описывает 4 полезных тега: %pre %preun %post %postun
Ваш RPM-пакет пытается удалить файлы и папки, которые он установил (неявное поведение). Теперь вы получите это сообщение:
- Если кто-то (вы или ваше приложение) тем временем удалил содержащую папку.
- Если ваш файл SPEC явно удаляет папку, обычно в
%preun
раздел (не существуетrm -rf
торчать?)
Обратите внимание, что я на самом деле имею в виду папку, т.е. /var/hudson/master/plugins/publish-over-cifs/help/global
в твоем случае. Вы не получите эти предупреждения, если целевые файлы отсутствуют. Другими словами, попробуйте заменить rm -rf <path>
от rm -rf <path>/*
в файле SPEC, если вы его там удаляете.