> 1) кому требуется установленный пакет quake3 ? никому ==> мы его удаляем?
> 2) кому требуется установленный пакет quake3 ? установленному пакету quake3-editor
> мы удаляем пакет quake3-editor, удалять ли пакет quake3 ?
> 3) кому требуется установленный пакет quake3-lib ? установленному пакету quake3
> мы удаляем пакет quake3, удалять ли пакет quake3-lib ?1. Нет
2. Нет
3. Нет
Удаление порта - листового ли, узлового ли, НЕ ДОЛЖНО вызывать никаких действий, кроме удаления самого порта. А затем пользователь должен решить, какую из процедур ему запустить:
- замещение удаленного порта новым (portmaster -o games/quake3 games/quake3.1 && portmaster -r quake3.1)
- рекурсивное удаление оборваной (stale) ветви (portmaster -s)
Вероятность отказа системы пропорциональна квадрату ее сложности, и единственное известное лекарство - функциональная декомпозиция. Ака unix-way. Меня настораживают решения "все в одном", потому что вероятность глюка этого "одного" горадо выше, чем глюка утилей, реализующих атомарный функционал. Я предпочту вылизанные до блеска пкж_*, которые делают то, и только то, что написано - адд, делит, инфо етц - и врапперы поверх них, вроде портмастера/портапгрейда/портманагера. Уже только потому, что в случае косяка во враппере я могу вручную выполнить все процедуры через пкж_*. Да, это трудоемко, но это возможно. А если накосячит писатель пкжсрц, который скрестил ужа с ежом, мне придется тупо куковать, пока он не отчехлится. Без альтернативы.
Поэтому мне идея функциональной аггрегации неприятна и подозрительна. Я за декомпозицию.