Могу ли я сказать, какие пакеты будут установлены дальше?
У меня есть 3 пакета, которые мы собираем spec
файлы для установки наших приложений с:
Package A
Package B
Package C
A depends on B
A depends on c
Проблема в том, что каждый из этих пакетов устанавливает вещи, которые требуют завершения работы сервера приложений перед установкой, и перезапускают после установки.
Что хорошо, если устанавливаются только B или C.
Проблемы при установке A и появлении новых версий B и / или C, я получаю 3 последовательных перезапуска моего сервера приложений, и каждый перезапуск занимает около 10 минут.
Когда мы создаем RPM, есть ли способ заставить A и B обнаруживать, что они устанавливаются / обновляются как зависимость от A, а не перезагружать сервер и позволять A делать это?
1 ответ
Я не знаю, есть ли нативный способ сделать это, но то, что я делал в прошлом, это проверял все пакеты %pre
если целевой сервис работает (например, httpd
). Если это так, выключите его и используйте at
чтобы он перезапустился через разумный промежуток времени в будущем (например, две минуты). Каждый RPM также проверяет, находится ли перезапуск уже в очереди (я использовал случайную очередь, например, "n" или что-то в этом роде), и, если это так, он отбрасывает ее еще на две минуты. Конечный результат должен состоять в том, что сервер запускается только один раз, через две минуты после установки окончательного пакета.
Недостаток: хотя at
находится в LSB, по некоторым причинам на некоторых машинах его не было установлено, поэтому мне пришлось добавить его в свой Requires
тег.