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-пакет пытается удалить файлы и папки, которые он установил (неявное поведение). Теперь вы получите это сообщение:

  1. Если кто-то (вы или ваше приложение) тем временем удалил содержащую папку.
  2. Если ваш файл SPEC явно удаляет папку, обычно в %preun раздел (не существует rm -rf торчать?)

Обратите внимание, что я на самом деле имею в виду папку, т.е. /var/hudson/master/plugins/publish-over-cifs/help/global в твоем случае. Вы не получите эти предупреждения, если целевые файлы отсутствуют. Другими словами, попробуйте заменить rm -rf <path> от rm -rf <path>/* в файле SPEC, если вы его там удаляете.

Другие вопросы по тегам