У меня есть проблема, которая с полной противоположностью RPM не удалит установленные каталоги, если они были изменены после первоначальной установки . Этот автор хотел принудительно удалить файлы, не созданные rpm, в каталоге, созданном rpm, что противоречило поведению rpm по умолчанию.

Моя проблема с точностью до наоборот. Первоначально я разместил его в Stack Overflow, но я хочу спросить здесь немного по-другому. При установке / удалении rpms, собранных традиционным способом, с использованием rpmbuild и specfiles, я получаю поведение по умолчанию, что я и хочу. Мой сценарий состоит в том, что rpm создает каталог журналов где-то, приложения регистрируют файлы в этом каталоге, и при удалении присутствие этих файлов, которые не были созданы rpm, предотвращает удаление их или каталога, в котором они хранятся.

Но когда я создаю RPM с плагином Nebula rpm для Gradle, что-то другое. Каталог просто удаляется независимо от того, были ли к нему добавлены какие-либо файлы. Еще более странно, что отладочный вывод rpm говорит мне, что он НЕ удаляет каталог, хотя на самом деле это так:

# rpm -evv myapp
...
D: fini      040755  2 (7007, 500)      4096 /usr/local/myapp/logs 
D:    erase rmdir of /usr/local/myapp/logs failed: Directory not empty
...
# ls -al /usr/local/myapp/logs
ls: cannot access /usr/local/myapp/logs: No such file or directory

Поскольку я выполняю одни и те же команды rpm с rpms, созданными плагином Gradle, и с rpms, созданными традиционным способом, и на одной и той же машине с одинаковой конфигурацией rpm, SOMETHING должен быть другим в самих файлах rpm. Но я понятия не имею, что это может быть. Кто-нибудь может просветить меня об этом?

1 ответ1

2

Это может быть какой-то скриптлет. Есть ли некоторые?

rpm -qp --scripts ./myapp.rpm 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .