Использование Puppet ...
У меня была ситуация с NTP, когда я хотел установить ntpd, если NTP не был установлен, но только если не были установлены ни openntp, ни ntpd. (Я решил это с помощью Александрийского решения: я избавился от openntp ...)
Это выходит за рамки ensure => absent
и ensure => present
; как бы вы это сделали? А как насчет зависимостей?
Если подумать, это будет означать, что NTPd устанавливается только при отсутствии OpenNTP. Но тогда это не означает, что (в контексте) OpenNTPd должен будет отсутствовать ... audit
вариант подойдет здесь?
Вы можете создать факт, который возвращает, установлен ли OpenNTP или нет, и использовать его для управления результатом. Хотя, честно говоря, я бы также просто удалил одну из них - зачем хранить две версии, если можно легко выбрать одну? Иногда есть причины, но тогда вы бы создали свои правила на основе этих причин, а не на основе фактического наличия пакета.